« ownCloud同期失敗 Main 根負けしてWindows 10へ更新… »

重複行を数えるにはuniq -c

重複行のあるデータ:

#データ例

$ echo -e "A\nB\nC\nB\nA\nA"
A
B
C
B
A
A

で、ざっくり重複数を数えようとsortコマンドで並べ替えたのはいいが、久しぶりだったので重複行をまとめるのに sort コマンド側の -u (uniq) オプションを使ってしまって、重複件数が数えられなかった。

$ echo -e "A\nB\nC\nB\nA\nA" | sort -u
A
B
C

なんどか、sortコマンドのヘルプやらマニュアルページやら眺めたが、(当然ながら)あると思い込んでいるその機能が見当たらない。

そうではなく、さらに uniq コマンドに渡して -c (count) オプションを使うべきだった。

$ echo -e "A\nB\nC\nB\nA\nA" | sort | uniq -c
      3 A
      2 B
      1 C

Leave a comment

Your comment