2012-06-10 156 views
1

我需要在/ var/log/messages中grep所有行为“昨天”。 当我使用下面的代码段时,由于日期格式为“Jun 9”,因此我得到的结果为零。 (这里没有显示,但是在日志文件中,当小于10时,月份的日子被填充一个额外的空间)。grep在日志文件中的特定日期的所有行

cat /var/log/messages | grep `date --date="yesterday" +%b\ %e` 

当我在命令行输入

$ date --date="yesterday" +%b\ %e 

,它返回昨天的日期,用填充。

但是,当我将它与grep和反引号结合使用时,额外的填充会被抑制,从而得到零结果。

我需要更改哪些内容才能使“日期”得到评估额外的填充?

+3

使用'$()'为命令替换,而不是反引号的以提高可读性和[其他福利(HTTP:// mywiki .wooledge.org/BashFAQ/082)。 –

回答

3

您应该能够通过把引号反引号来解决这个问题:

cat /var/log/messages | grep "`date --date="yesterday" +%b\ %e`" 
+0

注意:日期可以输出本地化月份名称,而系统日志日期始终为英文。 – Henno

相关问题