매우 간단합니다 awk
.
awk '(NR%3)' awk.write
이 파일의 경우:
this line 1 no un1x
this lines 22 0
butbutbut this 33 22 has unix
but not 1
THIS is not
butbutbut ffff
second line
내 결과는 다음과 같습니다
this line 1 no un1x
this lines 22 0
but not 1
THIS is not
second line
그러나 마지막 줄은 연속의 정의를 충족하지 않기 때문에 필요하지 않습니다.
세 개의 연속 행마다 처음 두 행을 얻으려면 어떻게 해야 합니까?
답변1
변수를 사용하여 이전 행이 존재하는지 추적할 수 있습니다.
$ awk '
FNR % 3 == 1 {f = $0; next} # The first line keep in f, skip to next line
FNR % 3 && f {print f;print} # Previous line present, print it and current line
' <file
this line 1 no un1x
this lines 22 0
but not 1
THIS is not
또는 다음을 사용하여 sed
:
sed -ne 'N;/\n/p;N;d' <file