gpt4 book ai didi

regex - grep 多个模式单文件参数列表太长

转载 作者:行者123 更新时间:2023-11-29 09:10:07 40 4
gpt4 key购买 nike

我目前正在一个文件中搜索多个模式。该文件的大小为 90GB,我正在搜索特定字段(每行中的位置 6-17)。我正在尝试获取包含任何特定数字列表的所有行。我目前使用的语法是:

grep '^.\{6\}0000000012345\|^.\{6\}0000000012543' somelargeFile.txt > outputFile.txt

对于少量模式,此方法有效。对于大量模式,我收到“参数列表太长”错误。

我尝试过的一种替代方法是分别搜索每个模式(在模式上使用 for 循环),但这需要多次遍历大型数据文件(57102722 行),效率不高。

根据我对“参数列表太长”错误的理解,它通常与 bash cmd 有关,而不是特定于 grep。是否有任何设置可用于解决此错误?或者,关于如何使用 awk 或 sed 或其他工具执行此操作的任何想法?

谢谢!

最佳答案

您可以通过将模式放在文件中并使用 -f 命令行选项来避免该问题。

最方便的是将每个备选方案放在文件的单独一行中:

模式.txt

^.\{6\}0000000012345
^.\{6\}0000000012543

调用

grep -f patterns.txt somelargeFile.txt > outputFile.txt

关于regex - grep 多个模式单文件参数列表太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31479822/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com