我正在使用grep -E
带有PATTERN文件的egrep()。(-f path/to/file
)。
这是在文本流的无限循环中完成的。这意味着我无法立即累积所有输入并将其传递给grep(如*.log
)。
有没有一种方法可以使grep从PATTERN文件中“保存”正在构建的NFA,以便下次运行?
我已经搜索过Google并没有运气地阅读文档。
我会尝试多解释一下。我需要使用正则表达式找到固定数量的字符串(这不是问题的一部分,但可以提出其他建议),例如IP地址,域等。搜索是在Internet的feed上完成的。您可以将其视为文本流。grep
由于它是流,因此无法使用所有输入。我可以累积大量流并grep
在其上使用(因此不在grep
每行上使用),但这也很有限(比如说30秒钟)。
我知道grep
正在根据其所有模式(从文件中)构建NFA。因此,我的问题是:grep
由于它不会改变,我可以告诉它保存该NFA以便下次运行吗?这样可以节省我每次构建NFA的时间。
grep
在该块上运行。
grep
几次。可能相关:为什么将1250个字符串与90k模式匹配如此之慢?
grep
用于处理文本流,但我仍然不明白为什么您需要运行多个实例。为什么不能将所有这些都提供给同一grep
实例?为什么在喂食之前需要积累它们grep
?
grep
每行文本要运行一个吗?文字是从哪里来的?将tail -f
是一个选择?