单Grep与正则表达式或多个简单的greps

时间:2012-09-18 10:00:27

标签: regex logging grep

我将与Grep合作研究一个非常大的数据集。相当多的日志。我不确定使用一些有时疯狂的复杂正则表达式进行grep一次是不是更好,或者尝试做一些简单的grep调用并每次都返回一个越来越小的数据集。我不是正则表达式中最好的,但我可以在日志搜索工具中存储我需要的正则表达式,我只是在寻找哪种方法最好。

编辑:

抱歉,我忘了在上一篇文章中添加该信息,以获取不同的grep问题。这些文件是日志,它们可能是小的还是大的我正在测试的是目前为止1.9gb所以我认为这是一个相当不错的大小要考虑,事情是日志将从小开始然后它们将增长和日志会在某些时候让我们每天都说,但是如果我正在做我的Apache访问日志,我会查看主页加载的频率,或者grep查看页面加载时间,这样我就能做出平均值。

2 个答案:

答案 0 :(得分:1)

由于您的数据集非常大,因此最好只使用正确的正则表达式调用grep一次。这样可以避免过多的IO开销。

答案 1 :(得分:1)

不是使用'疯狂的正则表达式',最好是构建一个你正在寻找的哈希值,然后在查找哈希值中的元素后循环遍历大型数据集。我会使用Perl,Python或Ruby,而不是grep。

编辑:

或者,您可以为该模式列表设置模式列表和grep。这比使用'疯狂的正则表达式'更好。您可以尝试grep -f patterns.txt datafile.txt