0

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

编辑:

抱歉,我忘了添加在我上一篇文章中针对不同 grep 问题的信息。这些文件是日志,它们可能很小,也可能很大,到目前为止我正在测试的文件是 1.9gb 所以我认为这是一个相当不错的大小,问题是日志会从小开始,然后它们会增长并且日志会在某个时候轮转,让我们说每天,但如果我像我的 Apache 访问日志那样做,我会用 grep 查询主页的加载频率,或者用 grep 查询页面加载时间,这样我就可以取平均值。

4

2 回答 2

1

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

于 2012-09-18T10:04:12.830 回答
1

与其使用“疯狂的正则表达式”,不如构建您要查找的内容的散列,然后在查找散列中的元素时循环遍历大型数据集。我会使用 Perl、Python 或 Ruby,而不是 grep。

编辑:

或者,您可以设置模式列表并为该模式列表设置 grep。这比使用“疯狂的正则表达式”要好。你可以试试grep -f patterns.txt datafile.txt

于 2012-09-18T10:13:43.963 回答