我想捕获一个apache日志,然后将结果输出到一个文件。我想将日期/月份与Apache日志匹配到当前/上一个日期,但我似乎做错了。
来自apache日志的示例: 62.173.92.62 - - [02 / Mar / 2010:15:46:58 +0000]“GET / img .......
当前脚本:
cat access_log | grep "\[+%d+/%b" > email.log
我希望与该行的[0/2Mar
部分匹配,但是我在email.log中没有得到任何内容(权限可以)。
由于
答案 0 :(得分:3)
请尝试此操作,您需要调用date
并将其输出传递给模式。此外,[
需要转义。
grep "\[$(date +%d/%b/%Y)"
答案 1 :(得分:0)
grep
不起作用;它不关心当前日期是什么,它使用你盲目传递的正则表达式。使用具有适当格式的date
来获取您关注的值,并将其与grep
一起使用。
答案 2 :(得分:0)
尝试类似:
day=`date +%d`
mon=`date +%b`
grep "\[$day/$mon/" access_log
答案 3 :(得分:0)
目前
grep "\[$(date +%d/%b/%Y)" file > email.log
以前的
grep "\[$(date +%d/%b/%Y -d 'yesterday')" file > email.log
不需要猫。