Unixでは、パターンを検出するときにそれに対応する他のパターンも検出する必要があります。

Unixでは、パターンを検出するときにそれに対応する他のパターンも検出する必要があります。

パターンを含む線が検出された場合、異なるパターンを含む対応する線を検出する必要があります。===これは、以下のように高い行でのみ発生します。

  • 文書の内容:

===
test1.log
ブバゲーム

===ファイル23.txt
夜78
遠く

テキスト
=== log3.c
AAA
制限
夕方3

  • 出力:

    ===ファイル23.txt
    夜78

    === log3.c
    夕方3

ベストアンサー1

次のように awk を使用してこれを実行できます。

 awk '/===/ {SEC=$0;PRINTED=0} /night/ {if(!PRINTED) print SEC; print $0; PRINTED=1;}' <file>

行を見つけて===保存し、まだ行を印刷していないことを確認します。次に、パターンが見つかった場合はnightセクションヘッダーが印刷されたことを確認し、そうでない場合は印刷し、現在の行を印刷し、セクションヘッダーが印刷されたことを示します。

おすすめ記事