apacheのログのリファラを日本語で表示

apache.logがあるとして、以下のコマンドを実行

$ perl -e 'while(<>){/^(.*) (.*) (.*) \[(.*)\] "(.*)" (.*) (.*) "(.*)" "(.*)"/;print $8,"\n" unless $8 eq "-";}' < apache.log |xargs -l1 php -r 'print(urldecode($argv[1])."\n");' -- | nkf

perlにログを渡しrefererを取り出し、xargsでphpに一行づつ渡す。phpでurldecodeをして出力し、nkfで文字コードを推定させてutf8で出力。ただしすごく遅い。

コピペ用
[sourcecode language=”c”]
perl -e ‘while(<>){/^(.*) (.*) (.*) \[(.*)\] “(.*)” (.*) (.*) “(.*)” “(.*)”/;print $8,”\n” unless $8 eq “-“;}’ < apache.log |xargs -l1 php -r 'print(urldecode($argv[1])."\n");' -- | nkf [/sourcecode]

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)