2013-10-22 39 views
1

我需要识别并从18 GB文件中删除几个100000 N(如字符N)。它们以长字符串形式出现。我想要使​​用的命令是:sed超过100000个字符

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

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

帮助表示赞赏。

回答

1

我检查的sed我的Fedora Linux系统,我已经发现,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 
+0

感谢您的帮助和+1乘法的简单解决方法... – bertbrutzel