知っている人多いと思うけど、よく使うイディオム

$ .. | sort | uniq -c | sort -nr

「sort | uniq -c」で重複行をカウントでき、さらに「sort -n」で行を数字と見なしてソートすることで重複行のカウントで並べなおすことができます

例えば、Webサーバのaccess_logからよくアクセスしてくるIPアドレスを集計してランキングを表示するには以下のよう書けます

$ tail -10000 access_log |cut -f 1 -d ' ' | sort |uniq -c|sort -nr|head -10
209 207.46.204.192
203 59.106.108.114
202 66.249.69.108
171 199.59.149.168
137 78.46.45.35
129 66.249.69.65
120 66.249.69.135
117 66.249.69.131
116 66.249.69.122
116 66.249.69.121

さくっとできて便利ですね。

ちなみに、「66.249」から始まるIPアドレスはgooglebotさんです。覚えておきましょう

このブログ記事について

このページは、Masahiro Naganoが2012年7月27日 13:00に書いたブログ記事です。

ひとつ前のブログ記事は「Intel SSD 910 800GB のベンチマーク」です。

次のブログ記事は「MySQLのbinlogをmysqlbinlogとperlワンライナーでカジュアルに解析する」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja