sortコマンドとuniqコマンドをパイプするよりもsortの-uオプション

2016/05/30 更新
labs.unoh.net/2008/07/post_124.html にリンクを貼っていましたが、ドメイン乗っ取りによりマルウェア配布サイトになってしまったようで、リンクを削りました。

これは↓のようにsortとuniqをパイプで繋げるだけでできます。

各行がいくつ重複しているか調べるにはuniqの-cオプションを使います。

実は、sortコマンドにはuというオプションがあり、即時の過酷なテキスト処理が求められる僕のプロジェクトでは、

  • レコードが何種類か見たい場合は sort -u
  • レコード別の分布数を見たい場合は sort | uniq -c

といった使い分けになっています。sort |uniqよりもタイプ数が少ないからsort -uを使う人が多いようです。ちなみにuniqコマンドは同じ値であっても隣接していないといけないのでsortコマンドとセットで使うことが多いです(参考『UNIX先生』)。

そういえば、速度差を計ったことはありませんね。sort -uの方が有利な気はしますが。