0

我有一个这种格式的 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 新手,那么最好的方法是什么?

4

1 回答 1

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
于 2013-01-14T16:24:27.797 回答