uniqコマンドで重複する行をカウントする方法
uniqコマンドで重複する行をカウントするには-cオプションを指定します。
オプションの説明
-c, --count prefix lines by the number of occurrences -d, --repeated only print duplicate lines, one for each group
以下のテキストを処理するとします。
$ cat test.txt apple apple banana lemon orange orange orange lemon apple orange
-cオプションを指定した場合。
$ uniq -c test.txt 2 apple 1 banana 1 lemon 3 orange 1 lemon 1 apple 1 orange
ファイル全体に対して重複する行をカウントしたい場合はsort後に実行します。
$ sort test.txt | uniq -c 3 apple 1 banana 2 lemon 4 orange
2行以上のみを抽出したい場合は-dオプションを指定します。
$ sort test.txt | uniq -c -d 3 apple 2 lemon 4 orange
カウント数でソートしたい場合は最後にsortします。
$ sort test.txt | uniq -c | sort -nr 4 orange 3 apple 2 lemon 1 banana