ほっしーの技術ネタ備忘録

技術ネタの備忘録です。基本的に私が忘れないためのものです。他の人の役にも立つといいなぁ。

ファイルの重複行検知

UNIX シェルでテキストファイルをばばーっと処理してる時に、
データ数となりがちな行数を数えるコマンドは良く知られてると思います。

$ wc -l file.txt

さて、これで表示されるのはあくまで行数なので、
データ数がこれより多いことはあり得ませんが、少ない可能性はあります。
そう、データが重複しているケースです。

そこで必要になるのが重複行のチェック。ここで以下のコマンド。

$ cat file.txt | sort | uniq -c | grep -v "^   1 " | wc -l
       0

一旦ソートしてから uniq -c で同一の行の数を数えます。
そして、1 行しかない=重複がない行を除外すると、
重複している行のみ残るので、wc -l で数えます。

コマンドを組み合わせただけですが、意外と便利っぽいので備忘録に。