2012-02-22 42 views
0

我運行這個命令:SED - 「文件名太長」 - 有沒有辦法避免這個錯誤?

cd /tmp;find/-maxdepth 2 -type f | xargs -0 sed -i 's/teststring1/finally/g' 

它處理直到它在那裏報告錯誤點:文件名過長。查看文檔時,它似乎是當文件名超過1024個字節時。無論如何,我認爲使用print 0會抑制這一點,但不會。有沒有任何命令可以跳過錯誤而不是停止?

+0

你可以用管道代替xargs來讀'line'嗎?這樣它將跳過失敗的線路,並繼續與其他線路。 – cmbuckley 2012-02-22 23:30:46

+0

我無法得到正確的語法,你能告訴我在我的隊友的背景下的命令? – user1166981 2012-02-22 23:39:26

+0

您是否手工重新輸入此命令? 'cd/tmp; find /'有點有趣,儘管在'xargs(1)'命令行中有'-0',命令中沒有'-print0'。請不要重新鍵入命令或代碼,這會讓調試更加困難,因爲沒有理由。請複製並粘貼。 :) – sarnold 2012-02-22 23:47:18

回答

3
cd /tmp; 
find/-maxdepth 2 -type f -exec sed -i 's/teststring1/finally/g' {} \; 

{}將改爲每個文件名,甚至與在其名稱中有空格的文件工作。

+0

更好的是,'-exec sed ... {} +'。 – 2012-02-23 05:31:17

相關問題