Linuxでは、抽出行が連続して3回以上表示されます。

Linuxでは、抽出行が連続して3回以上表示されます。

Linuxにはテーブルがあります。

A 0
A 0
A 0
B 0
B 1
B 0
B 1
B 0

連続して3回以上現れる行を抽出したいと思います。

私の予想結果は次のとおりです。

A 0

実際、3回以上は単なる例に過ぎません。実際の状況は、連続して30回以上現れる行を抽出したいことです。

どんなアイデアがありますか?

ありがとうございます!

ベストアンサー1

uniq -c file | awk '$1 >= 3 { print $2,$3 }'

uniq -c各行は、その行の連続発生回数とともに出力されます。与えられたデータについて

   3 A 0
   1 B 0
   1 B 1
   1 B 0
   1 B 1
   1 B 0

awk最初のフィールドが3以上の場合、スクリプトはこの値を使用して最後の2つのフィールドを出力します。

結果は次のとおりです。

A 0

おすすめ記事