【问题标题】:How to grep lines from a log file that have the current date?如何从具有当前日期的日志文件中 grep 行?
【发布时间】:2020-05-05 01:39:15
【问题描述】:

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

【问题讨论】:

    标签: date logging grep


    【解决方案1】:

    只需使用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 
    

    【讨论】:

      【解决方案2】:

      如果您需要在日期命令中添加空格分隔字段,请在 $() 周围使用双引号:

      $ grep "$(date +"%Y-%m-%d %H:%M")" file
      2013-06-21 00:01:24,915 - INFO   
      2013-06-21 00:01:24,915 - INFO
      

      【讨论】:

        【解决方案3】:

        您实际上并没有执行“日期”,因为它没有被反引号包围。命令应该是

        grep `date +"20%y-%m-%d"` /path/log/General.log
        #    ^--                ^--
        

        现在,正如所写,您正在两个不同的文件(+"20%Y-%m-%d"general.log)中搜索单词 date

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-10-25
          • 2017-05-04
          • 1970-01-01
          • 2012-02-06
          • 1970-01-01
          • 2018-12-01
          • 2014-07-04
          • 1970-01-01
          相关资源
          最近更新 更多