중지 모드까지 줄을 추출/인쇄해야 합니다. 이는 시작 패턴이 세 번째로 나타날 때마다, 즉 ERROR_FILE_NOT_FOUND
파일이 끝날 때까지 발생해야 합니다. 다음은 로그 파일의 예입니다.
ERROR_FILE_NOT_FOUND
some text
ERROR_FILE_NOT_FOUND
some text
ERROR_FILE_NOT_FOUND
Extract line 1
Extract line 2
Extract line 3
Stop_pattern
some text
ERROR_FILE_NOT_FOUND
some text
ERROR_FILE_NOT_FOUND
some text
ERROR_FILE_NOT_FOUND
Extract line 5
Extract line 6
Extract line 7
Stop_pattern
some text
ERROR_FILE_NOT_FOUND
some text
ERROR_FILE_NOT_FOUND
some text
ERROR_FILE_NOT_FOUND
Extract line 9
Extract line 10
Extract line 11
Stop_pattern
원하는 출력:
Extract line 1
Extract line 2
Extract line 3
//separate if possible
Extract line 5
Extract line 6
Extract line 7
//separate if possible
Extract line 9
Extract line 10
Extract line 11
//separate if possible
답변1
전혀:
$ awk '/Stop_pattern/{c=0; print ""}; c>=3;/ERROR_FILE_NOT_FOUND/{c++} ' file
Extract line 1
Extract line 2
Extract line 3
Extract line 5
Extract line 6
Extract line 7
Extract line 9
Extract line 10
Extract line 11