使用当前日期grep日志文件

时间:2013-06-21 15:24:33

标签: date logging grep

我需要用今天的日期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  

3 个答案:

答案 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