다음과 같은 테이블이 있다고 가정해 보겠습니다.
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 )
.