[ワンライナー][シェル]集計する
awkコマンドでよく使うワンライナーです。
テキスト中の文字列を集計する場合に使います。
例えば、sudoコマンドを使って毎日どこくらいroot権限を利用しているか数えるとします。
sudoは、/var/log/auth.logに記録されるので、下記のようにsudoに絞ってawkの連想配列(ハッシュ)を使って日付文字列ごとに数を数えます。
Webサーバのアクセスログやsyslogの傾向を掴むのに重宝します。
$ grep sudo auth.log | awk '{count[$1$2]++} END {for (name in count) print name, count[name]}' May24 28 May25 7 May26 12 May27 48 $