大于时间戳的 Grep 日志文件 [英] Grep log file greater than time stamp
问题描述
我有一个 unix 日志文件(application.log),它在开始时有带有时间戳的日志.我需要在此日志文件中搜索大于时间 2014-03-20 14:05:54 的模式发送".
I have a unix log file(application.log), that has logs with timestamp at the starting. I need to search for a pattern "sent" in this log file greater than time 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....
推荐答案
我向测试数据中添加了另外 2 条记录以确保这确实有效:
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....
但我认为您不能为此使用 grep
.这是一个 awk 解决方案:
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....
编辑
如果我们需要以与 2014-03-21 10:04:14,018 相同的格式指定结束时间怎么办?"
"What if we need to specify the end time in the same format like 2014-03-21 10:04:14,018?"
我添加了 3 行测试数据来确认第二种情况:
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
这篇关于大于时间戳的 Grep 日志文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!