Apache访问日志上的Grep无法匹配正斜杠

时间:2017-12-21 13:39:43

标签: grep

我正在尝试匹配并获取此Apache2访问日志中特定IP地址的特定日期字符串'item /'的出现次数 - 这是一个典型的行:

66.249.79.148 - - [21/Dec/2017:13:26:17 +0000] "GET /item/foobar/ HTTP/1.1" 200 8807 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

为什么,你可能会问?我想知道Googlebot每天多少次点击我网站上“item /”下的子页面。我这样做是因为我只需要一个快速而肮脏的解决方案,这些文件也会变得非常大。

如果我使用:grep 66.249 /opt/lamp*/apache2/logs/access_log | grep 21\/Dec | grep -wc 'item'我得到了正确的计数。问题是我的网址中可能会出现“item”一词。真的我想匹配'item /'。但是,我尝试的任何东西似乎都不起作用 - 所有这些都返回零计数:

  • grep 66.249 /opt/lamp*/apache2/logs/access_log | grep 21\/Dec | grep -wc "item/"
  • grep 66.249 /opt/lamp*/apache2/logs/access_log | grep 21\/Dec | grep -wc item/
  • grep 66.249 /opt/lamp*/apache2/logs/access_log | grep 21\/Dec | grep -wc item\/
  • grep 66.249 /opt/lamp*/apache2/logs/access_log | grep 21\/Dec | grep -wc "item\/"
  • grep 66.249 /opt/lamp*/apache2/logs/access_log | grep 21\/Dec | grep -wc "item/"

无论如何,我不认为需要转发正斜杠?为了增加神秘感,grep 21\/Dec可以正常使用。

我遗漏了一些非常明显的东西......

0 个答案:

没有答案