awkでログをクロス集計してみた。
なんとなく、おもいついたので、やってみたら、
できてるんじゃねー。
grep May/2013 ./access.log | awk '{ hipw=substr($4,2,2);hoge[$1" "hipw]=hoge[$1" "hipw]+1;host[$1]=$1;} END{printf("%15s",""); for(x=1;x<=31;x++) {printf("%4s",substr(x+100,2,2) );}print ""; for (key in host){ printf("%15s",key); for(x=1;x<=31;x++){ if(hoge[key" "substr(x+100,2,2)]>0){printf("%4s",hoge[ke y" "substr(x+100,2,2)])}else{printf("%4s",0);} }print""; }print ""; }' | sort -k 1
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127.0.0.1 0 0 0 0 0 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180.76.5.16 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180.76.5.17 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194.12.64.4 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210.4.15.88 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210.4.15.90 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50.31.96.12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 54.234.8.22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 65.55.52.87 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 6 4 4 4 6 2 2 0 0 0 0 0 0 0 0 94.23.45.14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115.47.53.34 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118.97.95.27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0