열 3과 열 4를 인쇄하고 싶지만 헤더 빈 열 행은 인쇄하지 않습니다.
header
tap
norm
X Y 880 1787
X Y 3253 3439
이것을 인쇄하여 awk '{print($3,$4)}'
제공됨
(BLANK lines from header rows)
880 1787
3253 3439
이것은 열 19를 인쇄하는 데에만 작동하지만 두 열을 모두 인쇄하려면 어떻게 해야 합니까?
awk '$3{print $3}'
880
3253
나는 col3 col4를 원한다
880 1787
3253 3439
시도했지만 3열만 인쇄되었습니다.
awk '$3{print $3}''$4{print $4}'
880
1787
3253
3439
답변1
머리의 길이가 얼마나 되는지 아십니까(세 줄):
awk 'NR > 3 { print $3, $4 }'
NR
지금까지 읽은 레코드 수입니다(기본값은 행 수). 네 번째 줄과 모든 후속 줄에서 명령문을 NR > 3
트리거합니다 .print
너할 수 있다사용
awk '$3 { print $3, $4 }'
$3
그러나 이것은 존재 여부뿐만 아니라 0이 아닌지 여부에 따라 달라지기 때문에 약간 취약합니다 (세 번째 열의 0은 해당 행에 대한 출력을 제공하지 않습니다).
답변2
만약에
header
tap
norm
X Y 880 1787
X Y 3253 3439
그 다음에
awk '{print $3 " " $4}' | sed '/^ *$/d'
만들다
880 1787
3253 3439
마지막 부분에서는 시도해 볼 수 있습니다.
awk '{print $3 " " $4 " " $19}'
열 3, 4, 19를 인쇄합니다.