2013-10-22 62 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