SQLでいうところのGROUP BYのようなことをしたい場合。awkで出来たりします。
調べたいファイル
$ cat fruits.list
apple
orange
orange
apple
melon
結果
$ cat fruits.list | awk '{count[$0]++}END{for(i in count)print count[i], i}'
2 apple
1 melon
2 orange
実は unique -c
使ったほうが簡単です。
uniq
$ cat fruits.list | sort | uniq -c
2 apple
1 melon
2 orange
fruits.listがめちゃくちゃデカい場合とかにはsortのコストがバカにならないのでawkの方がいいですね
データの件数が多い場合はawkに利点があるようです!