fgrep可以处理多少个搜索字符串?

时间:2011-01-05 20:40:54

标签: grep pattern-matching

我有一个文本文件(大约1.5千兆字节),我想搜索特定标题的出现。我的名单中有大约1000万个标题。

显然,并非列表中的每个标题都存在于文本文件中。没关系。我只需要知道文本中存在哪些标题。

现在,如果它只有几百个标题,我会使用fgrep并告诉它从文件中读取搜索字符串(即fgrep -f patternlist.txt bigtextfile.txt)。

fgrep会扼杀这么多数据吗?

将我的标题列表和文本文件转换为可以与fgrep一起使用的表单有点工作,所以我想知道这是否可能在我去之前有效那种努力。

另一种选择是将标题列表拆分为多个文件,并为每个子列表运行fgrep一次。如果fgrep可以处理相当多的搜索字符串,这并不疯狂。如果它可以处理100万,这是一个明智的选择。如果它不能处理100,000(需要超过100次单独运行),那么这是一个不太吸引人的选择。

那么,是否有人使用fgrep搜索大量字符串?如果没有,是否有其他程序可用?我可以写一两天,但如果我可以避免工作。 。

1 个答案:

答案 0 :(得分:0)

fgrep使用以下发明很好地扩展:

您的模式列表已被读取,已编译并保存在内存中,当然。 big 输入文件可以使用--mmap选项进行内存映射,以实现最佳资源使用 - 内核将文件映射到内存区域;应用程序本身不知道如何通过简单的内存地址访问整个文件。