새 패턴이 발견될 때까지 패턴 앞에 줄을 인쇄합니다.

새 패턴이 발견될 때까지 패턴 앞에 줄을 인쇄합니다.

먼저 Pattern_A를 grep한 다음 Pattern_B를 찾을 때까지 Pattern_A 앞의 ​​모든 행을 인쇄해야 합니다(따라서 기본적으로 뒤로 검색해야 합니다).

line1 line2 line3 line4 Pattern_B line5 line6 line7 line8 Pattern_A line9 line10 line11 Pattern_B line12 line13 line14 line15 Pattern_A line16 line17 .... .... ....

출력이 다음과 같기를 원합니다.

Pattern_B line5 line6 line7 line8 Pattern_A Pattern_B line12 line13 line14 line15 Pattern_A

답변1

"무언가를 거꾸로 한다"는 말을 들을 때마다 저는 다음과 같이 생각합니다. 입력을 거꾸로 한 다음 "정상적으로" 어떤 일을 하고 그 결과를 반대로 합니다.

tac file | sed -n '/Pattern_A/,/Pattern_B/p' | tac

그러나 이 경우 "모드 B에서 모드 A로 검색"하면 동일한 결과가 나타납니다.

sed -n '/Pattern_B/,/Pattern_A/p' file

관련 정보