grepでアンマッチ(ファイル編)

grepでアンマッチ(ファイル編)

Software(Tips)grepでアンマッチ(ファイル編)

今日は自分のサイトのアクセスログ解析をしてみました。アクセスログはレンタルサーバ上の管理ツールで確認できるので、それをコピーして、ローカル PC にテキストで保存します。

アクセスログは半月で 43000 行程度。この中には画像ファイルやテキストファイルなどのアクセスも含まれるので、それらは除外したい。また、各サーチエンジンのロボットも除外しないと、本当の一般ユーザーのアクセスがわかりにくい。

今回、ログ解析には grep コマンドを利用しますが、Perl で 1 行ずつ見ていった方が早いのかな。下記のコマンドで「.gif」を含む文字列の行を除外することができます。(grep の -v)

$ grep -v '.gif' acc.txt

これをパイプで繋げば、複数の単語を除外できますが、それだとダサダサですね。ってことで、grep の -f オプションを利用して、マッチさせたくない単語をファイルに 1 行ずつ書いておきます。

$ cat unmatch.txt

(一部だけ表示)
.jpg
.jpeg
.gif
.ico
.css
.txt
.rdf
Googlebot
Slurp
msnbot

あとは、このファイルを利用して抜き出します。

$ grep -v -f unmatch.txt acc.txt

さらに、この中から、各コンテンツごとにアクセス数を算出する場合は、Perl などのスクリプトでやった方が効率がいいですね。とりあえず、ざっとログを解析するにはシェルの grep や awk で十分可能です。

最終更新日:

関連記事

人気記事

新着情報