我正在尝试匹配并获取此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
可以正常使用。
我遗漏了一些非常明显的东西......