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 "EmpID#106496" /path/log/Genral.log
Output:
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
For searching files, the command syntax you use is grep [options] [pattern] [file] , where “pattern” is what you want to search for. For example, to search for the word “error” in the log file, you would enter grep 'error' junglediskserver. log , and all lines that contain”error” will output to the screen.
In the above command, %d/%b/%Y:%H:%M:%S is the format specifier of your date column. You need to update it as per your log file's date format.
The grep command searches through the file, looking for matches to the pattern specified. To use it type grep , then the pattern we're searching for and finally the name of the file (or files) we're searching in. The output is the three lines in the file that contain the letters 'not'.
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
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With