文字列を数える

このようなファイルsam.logがあったとします.

東京
大阪
名古屋
東京
大阪
東京
東京
大阪
名古屋
東京
大阪
東京
東京
大阪
名古屋
東京
大阪
東京
東京
大阪
名古屋
東京
大阪
東京
福岡
札幌
  

このsam.logを対象に,sort sam.log|uniq -cとコマンドを打つと,出現する文字列を数えることができます.

$ sort sam.log|uniq -c
      1 札幌
      8 大阪
     12 東京
      1 福岡
      4 名古屋
  

多い順に並べるのなら,sort sam.log|uniq -c|sort -r

$ sort sam.log|uniq -c|sort -r
     12 東京
      8 大阪
      4 名古屋
      1 福岡
      1 札幌
  

多い順に3件取り出したいなら,sort sam.log|uniq -c|sort -r|head -n 3です.

$ sort sam.log|uniq -c|sort -r|head -n 3
     12 東京
      8 大阪
      4 名古屋