我有一个这种格式的access_log文件:
65.175.123.152 - - [08/May/2007:02:17:40 +0200] "GET /favicon.ico HTTP/1.1" 404 217 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.11) Gecko/20070312 Firefox/1.5.0.11"
现在我希望每天使用unix shell命令获得总点击量。
我认为使用grep需要做些什么,我是unix的新手,那么最好的方法是什么?
答案 0 :(得分:1)
对于某一天,您可以这样做:
grep 08/May/2007 /var/log/httpd/access_log | wc -l
即,查找具有给定日期的所有访问日志条目,然后计算找到的行数。
如果您希望在日志中为所有日期生成每天的点击报告:
awk '
{
when=substr($4, 2, 11);
totals[when]++
}
END {
for (i in totals)
print i, totals[i]
}' /var/log/httpd/access_log | sort
结果如下:
01/Jan/2013 9
02/Jan/2013 33
03/Jan/2013 262
04/Jan/2013 35
05/Jan/2013 19
06/Jan/2013 9
07/Jan/2013 24
08/Jan/2013 68
09/Jan/2013 16
10/Jan/2013 16