1行の値が別の値の直後にある場合にのみファイルに印刷します。 bash

1行の値が別の値の直後にある場合にのみファイルに印刷します。 bash

さまざまなランダムステートメントを含むファイル(xyz.dat)があります。私がしなければならないのは、そのファイルから1行を検索VALUE1し、VALUE1その直後に続く新しい行だけをファイルに印刷することですVALUE2

入力例:

1 VALUE1
2 VALUE1
3 VALUE1
4 VALUE2
5 VALUE1
6 VALUE2
7 VALUE2

予想出力:

3 VALUE1
4 VALUE2
5 VALUE1
6 VALUE2

ベストアンサー1

シンプルsed方法:

sed -n '/ VALUE1$/{ N; / VALUE2$/p }' xyz.dat > new.txt

new.txtコンテンツ:

3 VALUE1
4 VALUE2
5 VALUE1
6 VALUE2

おすすめ記事