반면:sed -e '/pattern1/,/pattern2/!d' file.org
패턴1과 패턴2 사이에서 처음으로 나타나는 줄을 일치시키고 나머지는 일치시키지 않는 방법은 무엇입니까?
예를 들어:
pattern1
aaaa
pattern2
pattern1
bbb
pattern
다음을 출력해야 합니다:
aaa
대체 솔루션(사용 grep
또는 기타)을 환영합니다.awk
답변1
$ cat input
a
b
c
a
b
c
$ sed -n '/a/,/c/p;/c/q' input
a
b
c
인쇄하려는 범위를 검색한 다음 첫 번째 "끝" 표시가 보이면 종료합니다.
awk
시작점과 끝점을 더 쉽게 제외할 수 있습니다.
$ awk 'BEGIN { p=0 } /c/ { p=0; exit } p {print} /a/ { p=1 }' input
b