지금 까지이 질문에 많은 좋은 답변이 주어졌지만을 awk
사용하지 않는 사람은 여전히 그리워 getline
합니다. , 때문에 일반적으로 , 그것은 사용할 필요가 없습니다 getline
, 나는 갈 것이다 :
awk ' f && NR==f+1; /blah/ {f=NR}' file #all matches after "blah"
또는
awk '/blah/ {f=NR} f && NR==f+1' file #matches after "blah" not being also "blah"
논리는 항상 "blah"가있는 행을 저장 한 다음 한 행 뒤에있는 행을 인쇄하는 것으로 구성됩니다.
테스트
샘플 파일 :
$ cat a
0
blah1
1
2
3
blah2
4
5
6
blah3
blah4
7
"blah"다음에 모든 줄을 가져옵니다. 첫 번째 뒤에 나타난 경우 다른 "blah"를 인쇄합니다.
$ awk 'f&&NR==f+1; /blah/ {f=NR}' a
1
4
blah4
7
"blah"자체를 포함하지 않으면 "blah"뒤에 모든 줄을 가져옵니다.
$ awk '/blah/ {f=NR} f && NR==f+1' a
1
4
7
-A1
옵션