2010-12-15 3 views
1

내 파일은 다음과 같다 :awk를 사용하여 마지막 패턴 범위를 인쇄하는 방법은 무엇입니까?

/시작 패턴/
첫 경기
/끝 패턴/

다른 텍스트

/시작 패턴/
초 경기
/끝 패턴/

기타 텍스트

/시작 패턴/
이것은 내가
/끝 패턴을 인쇄 할 한/
다른 텍스트

내가 마지막 경기 AWK 사용하여 인쇄 할 수 있습니다 어떻게

? 나는이 모든 경기를 어떻게 인쇄해야하는지 알고 있습니다.

답변

1
awk 'END { print r } 
/end pattern/ { f = x } 
/begin pattern/ { f = 1; r = x } 
f++ > 1 { r = r ? r RS $0 : $0 } 
' infile 
1

스토어 현재의 경기와 그것을 밖으로 인쇄 할 END 블록을 사용 :/패턴 /와/끝 패턴을 시작/사이에 한 줄이 경우

awk '/end pattern/{flag=0} flag{m=$0} /begin pattern/{flag =1} END{print m}' file 

이 작동합니다.

관련 문제