ファイルにn回表示される行だけを保持

ファイルにn回表示される行だけを保持

test.txt次のように、1行に文字列を含むファイルがあります。

AA
BNT
AA
KIO
LO
LO
POY
LO
II
LO
AA
AA
II
AA
BNT
POY
YTR
BNT
LL
BNT

Linuxを使用してファイルを繰り返し、4回発生する行だけを返す方法は?

希望の出力:

AA
BNT
LO

ありがとう

ベストアンサー1

AWKを使用:

awk '{ seen[$0]++ } seen[$0] == 4' test.txt

これは、各行が見た回数を数え、その回数が正確に4のときに1行を出力します(したがって、4回以上見た行は1回出力されます)。

正確に4回発生する行のみを表示するには、次のコマンドを使用します。

awk '{ seen[$0]++ } END { for (line in seen) if (seen[line] == 4) print line }' test.txt

おすすめ記事