파일 1:
pattern1
a
b
c
end
명령 =>
cat file1 | sed -n '/pattern1/,/pattern2/p'
출력 =>
pattern1
a
b
c
end
두 번째 패턴이 일치하지 않으면 어떻게 출력을 인쇄할 수 없나요?
원하는 출력:
pattern1
답변1
끝 "패턴"(끔찍한 단어 btw - 참조)이 보일 때까지 텍스트를 버퍼링해야 합니다.패턴과 일치하는 텍스트를 찾는 방법), 예를 들어 다음 awk 명령을 참조하세요.
$ cat file1
pattern1
a
b
c
end
$ sed -n '/pattern1/,/pattern2/p' file1
pattern1
a
b
c
end
$ awk '/pattern1/{f=1; print; buf=""; next} f{buf=buf $0 ORS; if (/pattern2/) {printf "%s", buf; f=0} }' file1
pattern1
$ awk '/pattern1/{f=1; print; buf=""; next} f{buf=buf $0 ORS; if (/end/) {printf "%s", buf; f=0} }' file1
pattern1
a
b
c
end