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