파일에 여러 번 나타날 수 있는 두 개의 서로 다른 패턴(패턴 포함) 사이의 선을 인쇄하려고 합니다. 시작 패턴-끝 패턴-리듬 외에도 두 번째 패턴도 나타날 수 있습니다.
예:
-문서:
XYZ
XYY
BBB
XYX
AAA
AAB
BBB
XYW
AAA
AAC
AAD
BBB
- 출력은 다음과 같아야 합니다.
AAA
AAB
BBB
AAA
AAC
AAD
BBB
나는 비슷한 것을 시도했습니다 awk '/AAA/{a=1}/BBB/{print;a=0}a'
.
감사해요.
답변1
반드시 awk
이 작업을 수행해야 하는 경우:
awk -- '/AAA/,/BBB/{print}'
sed
하지만 귀하의 경우에도 매우 잘 작동하는 것 같습니다 . 마찬가지로 다음을 수행하십시오.
sed -ne '/AAA/,/BBB/p'
두 명령 모두에서 쉼표를 사용하여 첫 번째 패턴과 일치하는 줄부터 시작하여 두 번째 패턴과 일치하는 줄까지(및 포함)의 모든 줄을 고려함을 나타냅니다.