sedで「最初のパターンが発生した後の行からのみ印刷」をどのように表現しますか?

sedで「最初のパターンが発生した後の行からのみ印刷」をどのように表現しますか?

入力があるとき:

-------------------------------------------------------------------
Sat Jul  1 09:28:03 UTC 2023 - Matej Cepl <[email protected]>

- Clean up SPEC file.

-------------------------------------------------------------------
Mon Jul  4 18:11:38 UTC 2022 - Matej Cepl <[email protected]>

- Do not unset various variables when calling make (only CFLAGS
  should be set).

私は次のような出力を受けたいと思います。

- Clean up SPEC file.

-------------------------------------------------------------------
Mon Jul  4 18:11:38 UTC 2022 - Matej Cepl <[email protected]>

- Do not unset various variables when calling make (only CFLAGS
  should be set).

答え1

ロジックを逆にして行1を削除します。 1 - パターン一致(含む)

sed '1,/PATTERN/d' infile

答え2

sed '0,/pattern/d' inputfile.txt

  • 0,/pattern/ファイルの先頭から一致を開始
  • pattern/d一致する行とその前のすべての後続の行を削除します。

sed '0,/Sat/d' inputfile.txt

出力を新しいファイルにリダイレクトします。

sed '0,/Sat/d' input.txt > outputfile.txt

関連情報