次の3つ以上の同じ行が連続して表示されるときにテキストファイルに行を表示する方法

次の3つ以上の同じ行が連続して表示されるときにテキストファイルに行を表示する方法

サンプルファイルの内容:

display this line
1111 aaaa
1111 aaaa
1111 aaaa
1111 aaaa
don't display this line
1111
1111

出力は次のようになります。display this line

ベストアンサー1

拡張正規表現モードでGNU sedを使用する:

$ sed -Ene '
    $!N;$!N;$d
    /^(.*)(\n\1){2}$/!D
    n;p
' file
display this line

パターンスペースには常に3行を維持してください。パターンスペースの3行がすべて同じであることが確認されるまで、パターンスペースの一番上の行を切り取り続けるか、eofを押してストアを閉じて終了します。

おすすめ記事