通过日志文件进行交叉和搜索

时间:2016-07-04 21:07:48

标签: python bash sorting search logging

我想要搜索多GB的日志文件。每个日志都有一个时间戳,消息和其他多个字段,因此每个日志包含多行,如下所示:

Mon Jan 20 12:00:00 2016 127.0.0.1:12345 Hello World!
Field_1 = foo
Field_2 = bar
... (some more fields)
<empty line>

请注意,这样两个日志由一个空行分隔。不幸的是,只有单个日志文件按时间排序,必须交错两个不同的日志文件以获得整个有序的日志行。这是我想要实现的第一件事。

此外,我想搜索日志。这基本上意味着我想在每个日志上定义搜索词和grep。所有搜索字词都需要匹配。所以最后我想要一套符合我搜索条件的有序日志。

我试图通过使用grep的上下文搜索来解决这个问题但是时间缺失的顺序和固定的上下文大小使它变得很痛苦。所以我想问一下是否有一些Bash或Python魔法可以让这种情况发生。每个提示都受到高度赞赏!

1 个答案:

答案 0 :(得分:0)

我肯定会建议您查看regular expressions ,他们拥有你需要的一切!您可以创建一个编译正则表达式模板的脚本,然后使用re.findall(regex_template, your_log_variable)&lt;举个例子,你必须填写你自己的日志和模板。

希望这可以帮助你...