How to grep lines from a log file that have the current date?

前端 未结 3 2021
一生所求
一生所求 2021-01-21 05:37

I need to grep a log file with today\'s date, but the output is showing for more than today\'s date.

grep date +\"20%y-%m-%d\" /path/log/General.log | grep \         


        
相关标签:
3条回答
  • 2021-01-21 06:04

    If you need to add space delimited fields in date command use double quotes around $() :

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

    Just use the date output as a pattern in grep:

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

    That is, you need to enclose the date sentence to make it be processed. Also, note I used Y instead of your 20%y.


    I am looking for a sepcific EmpID in the logs with current date.

    Then pipe to another 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 
    
    0 讨论(0)
  • 2021-01-21 06:17

    You're not actually executing 'date', because it's not been surrounded by backticks. The command should be

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

    Right now, as written, you are searching for the word date in two different files (+"20%Y-%m-%d", and general.log).

    0 讨论(0)
提交回复
热议问题