2012-02-22 28 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

相关问题