awk를 사용하여 범위 패턴과 일치하는 라인을 알아야합니다. 내가 일치하고 싶었 방법awk 범위 패턴 - 범위 패턴 시작에서 무언가를 수행
some random text
some random text START this is first line I want to match with START
some random text
some random text
some random text
some random text START this line contains another START but I dont want matched this line
some random text
some random text END this line is last of my range
some random text
... input text countinues, more range matches can be found
:
/START/,/END/ {
if ((index($0,"START"))) {
# do something when range starts
}
#do some other things
}
을하지만 난 내 인덱스가 범위의 중간에 라인 6에서 START 일치하는 것을 실현 내가 입력 다음 있다고 가정 . 첫 번째 인덱스와의 첫 번째 일치 후 플래그를 높이는 것에 대해 생각하고 있지만, NR과 비슷한 전역 변수와 같은 좀 더 우아한 방법이 있습니까?
EDIT : 입력 텍스트가 계속되고, 더 많은 범위 일치를 찾을 수 있습니다. 플래그를 올리거나 카운팅을 사용하면 범위 끝나기 후에 플래그/카운트를 재설정해야합니다 (인덱스 ($ 0, "END") 추가). 원하지 않음
플래그를 사용합니다. –