Grep log file greater than time stamp

Try:

sed -n '/^2014-03-20 14:05:54/,$ {/sent/p;}' file

Note: This assumes that there is at least 1 line in your log file that actually starts with 2014-03-20 14:05:54 and that it's OK to include matches from that second in time.

If the existence of such a line is not guaranteed, @shellter's awk approach is superior; to put it together:

awk '$0 > "2014-03-20 14:05:54" && $0 ~ "sent"' file

I added 2 more records to the test data to ensure this is really working:

2014-03-19 14:05:53,999 [NfxAgent....
2014-03-20 14:05:53,164 [NfxAgent....

But I don't think you can use grep for this. Here is an awk solution:

$ grep sent  grepTest_20140321.txt|  awk '$0 > "2014-03-20 14:05:54"' 
2014-03-20 14:05:54,038 [NfxAgent....
2014-03-20 14:05:54,164 [NfxAgent....
2014-03-20 14:05:54,298 [NfxAgent....
2014-03-20 14:05:54,414 [NfxAgent....
2014-03-20 14:05:54,787 [NfxAgent....

edit

"What if we need to specify the end time in the same format like 2014-03-21 10:04:14,018?"

And I've added 3 lines of test data to confirm the 2nd case:

2014-03-21 10:04:14,017 [NfxAgent....
2014-03-21 10:04:14,018 [NfxAgent....
2014-03-22 10:04:14,999 [NfxAgent....

Result shows one new record in the range you've specified.

 awk '$0 ~ "sent" && $0 > "2014-03-20 14:05:54" && $0 < "2014-03-21 10:04:14,018"'    grepTest_20140321.txt
2014-03-20 14:05:54,038 [NfxAgent....
2014-03-20 14:05:54,164 [NfxAgent....
2014-03-20 14:05:54,298 [NfxAgent....
2014-03-20 14:05:54,414 [NfxAgent....
2014-03-20 14:05:54,787 [NfxAgent....
2014-03-21 10:04:14,017 [NfxAgent....

IHTH

Tags:

Unix

Grep

Awk

Sed