sed超过100000个字符

时间:2013-10-22 06:52:28

标签: sed large-files largenumber

我需要从18 GB文件中识别并删除多次出现的100000 N(如字符N)。它们以长串发生。我想要使​​用的命令是:

  sed -r '/N{100000}/d' bigFile > newBigFile

我得到的错误是{是一个非法的charcater。将数字减少到10000不会产生错误,并且该过程运行正常。

非常感谢帮助。

1 个答案:

答案 0 :(得分:1)

我已经检查了我的fedora linux上的sed,我发现sed有一个最大字符串长度:2 ^ 15 - 1.所以,你可以编写最大长度为N = 32767的正则表达式

sed -r 's/N{32767}//g' bigFile > newBigFile

此外,您可以将此值乘以此值(例如,乘以3):

sed -r 's/(NNN){32767}//g' bigFile > newBigFile

即便如此,如果您的情况可以接受,则可以使用没有右边框的正则表达规则:

sed -r 's/N{32767,}//g' bigFile > newBigFile