新しいパターンが見つかるまでパターンの前に行を印刷します。

新しいパターンが見つかるまでパターンの前に行を印刷します。

まず、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

関連情報