我需要用今天的日期grep一个日志文件。但产量显示超过今天的日期。
grep date +"20%y-%m-%d" /path/log/General.log | grep "EmpID#106496" /path/log/Genral.log
输出:
2013-06-19 14:47:05,996 - INFO EmpID#106496
2013-06-19 14:47:05,996 - INFO EmpID#106496
2013-06-21 00:01:24,915 - INFO EmpID#106496
2013-06-21 00:01:24,915 - INFO EmpID#106496
答案 0 :(得分:10)
只需将date
输出用作grep
中的模式:
$ grep "$(date +"%Y-%m-%d")" file
2013-06-21 00:01:24,915 - INFO
2013-06-21 00:01:24,915 - INFO
也就是说,您需要附上date
句子以便对其进行处理。另请注意,我使用了Y
而不是20%y
。
我在日志中寻找具有当前日期的特定
EmpID
。
然后管道到另一个grep:
$ grep $(date +"%Y-%m-%d") file | grep "EmpID#106496"
2013-06-21 00:01:24,915 - INFO EmpID#106496
2013-06-21 00:01:24,915 - INFO EmpID#106496
答案 1 :(得分:2)
如果需要在date命令中添加空格分隔字段,请在$()附近使用双引号:
$ grep "$(date +"%Y-%m-%d %H:%M")" file
2013-06-21 00:01:24,915 - INFO
2013-06-21 00:01:24,915 - INFO
答案 2 :(得分:1)
你实际上并没有执行'date',因为它没有被反引号所包围。命令应该是
grep `date +"20%y-%m-%d"` /path/log/General.log
# ^-- ^--
现在,正如所写,您正在两个不同的文件(date
和+"20%Y-%m-%d"
)中搜索单词general.log
。