【发布时间】:2015-10-07 09:51:40
【问题描述】:
我目前正在一个文件中搜索多个模式。该文件大小为 90GB,我正在搜索特定字段(从每行的 6-17 位开始)。我正在尝试获取包含任何特定数字列表的所有行。我当前使用的语法是:
grep '^.\{6\}0000000012345\|^.\{6\}0000000012543' somelargeFile.txt > outputFile.txt
这适用于少量模式。对于大量模式,我得到“参数列表太长”错误。
我尝试过的一种替代方法是分别搜索每个模式(在模式上使用 for 循环),但这需要多次遍历大型数据文件(57102722 行),效率不高。
根据我对“参数列表太长”错误的了解,它通常与 bash cmds 相关,而不是特定于 grep。是否有任何设置可用于解决此错误?或者,关于如何使用 awk 或 sed 或其他工具执行此操作的任何想法?
谢谢!
【问题讨论】:
-
很奇怪,“参数列表太长”通常是指您提到的文件。旁注:说
grep -E '^.{6}00000000(12345|12543)'怎么样? -
什么是“大量”模式?
-
你可以看看这个问题:stackoverflow.com/questions/31479822/…