awk를 사용하여 SQL 테이블의 열을 한 줄로 인쇄하는 방법은 무엇입니까?

awk를 사용하여 SQL 테이블의 열을 한 줄로 인쇄하는 방법은 무엇입니까?

다음과 같은 테이블이 있다고 가정해 보겠습니다.

This is first line
name                                minimum     maximum     config_value 
----------------------------------- ----------- ----------- ------------ 
some text goes here for sample                0           1            0 
Output Ends

출력은 두 번째 열과 같아야 합니다.

minimum    
----------- 
          0

그러한 출력을 생성하는 awk 명령은 무엇입니까?

답변1

awk상당한 요구 사항이 아닌 경우 파일 cut을 고정 바이트로 분할하고 grep빈 줄을 제거할 수 있습니다.

cut -b 37-47 data | grep -v '^$'

답변2

나는 awk 전문가는 아니지만 출력이 항상 동일하다면(즉, 두 번째 줄은 헤더이고 세 번째 줄은 결과를 포함함) 다음과 같이 사용할 수 있습니다.

cat /tmp/test.txt | awk 'NR==2 {headers=$0; start=0; len=0} NR==3 { start=index($0," "); len=length($2)+1; print substr(headers,start,len) ; print substr($0,start,len)} NR==4 {print substr($0,start,len)}'

길이로 구분된 필드이므로 NR==3"밑줄" 줄( )을 읽으면 필드의 시작 인덱스와 길이를 알 수 있습니다.

SQL이 둘 이상의 행을 반환하는 경우 다음과 같은 것을 사용해야 합니다 if( NR > 1 && NR <= x ).

관련 정보