1

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

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

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

帮助表示赞赏。

4

1 回答 1

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
于 2013-10-22T07:05:38.503 回答