重複行数をカウント
uniqコマンドの-cオプションを使用すると、連続する重複行を削除しつつ各行の重複数をカウントできる。
$ cat sample.txt
apple
apple
banana
banana
banana
banana
orange
apple
$ uniq -c sample.txt
2 apple
4 banana
1 orange
1 apple
連続しないと重複行はカウントされないため、全体での重複数をカウントしたい場合は、事前にsortコマンドでソートする必要がある。
$ sort sample.txt | uniq -c
3 apple
4 banana
1 orange
行数の多い順に並び替える
uniq -cの出力を行数の多い順に並び替えたい場合は、さらにsortコマンドの-nrオプションを使用する。
$ sort sample.txt | uniq -c | sort -nr
4 banana
3 apple
1 orange
sortの-nオプションは数値としてソートする。-nオプションをつけない場合は辞書順となる。
数値の場合は2 < 10だが辞書順の場合は2 > 10となるため重複数順に並び替えるためには-nオプションが必要。
また-rオプションは降順に並び替える。昇順にしたい場合は-rオプションを省略すればよい。
\第一線のプログラマーの行動原理を学べる!/
