【发布时间】:2013-03-26 21:23:08
【问题描述】:
我需要从具有以下格式的日志文件中过滤消息:
2013-03-22T11:43:21.817078+01:00 INFO log msg 1...
...
2013-03-22T11:44:32.817114+01:00 WARNING log msg 2...
...
2013-03-22T11:45:45.817777+01:00 INFO log msg 3...
...
2013-03-22T11:46:59.547325+01:00 INFO log msg 4...
...
(其中... 表示“更多消息”)
必须根据时间范围进行过滤。
这是 bash 脚本的一部分,此时代码中的时间范围存储为 $start_time 和 $end_time。例如:
start_time = "2013-03-22T11:45:20"
end_time = "2013-03-22T11:45:50"
请注意,$start_time 或$end_time may 的确切 值可能永远不会出现在日志文件中;然而会有几条消息在时间范围内[$start_time, $end_time]是我正在寻找的。p>
现在,我几乎确信我需要一个 Python 脚本来进行过滤,但我宁愿使用 grep(或 awk 或任何其他工具),因为它应该运行得更快(日志文件很大)。
有什么建议吗?
【问题讨论】:
-
如果您的
start_time是shell 变量,请在为它赋值时删除=前后的空格。 (end_time也一样)