2014-03-28 178 views
4

我運行下面的命令:sed的:無法讀取:沒有這樣的文件或目錄

find . -name '*.html' -exec sed "s/foo/bar/g" {} \; 

所在的文件結構如下:

./two/three.html 
./two/two.html 
./two/one.html 
./three/three.html 
./three/two.html 
./three/one.html 
./one/three.html 
./one/two.html 
./one/one.html 

然而,sed的回來說即使這兩個命令自己工作正常(即我可以自己運行查找,並且我可以自行運行sed),但無法找到這些文件。

我和我一起看了一眼,他也被困住了。我最終走了一條不同的路線,但我仍然想知道這裏究竟出了什麼問題。

+0

如果刪除'-print'部分會怎麼樣?對我來說看起來沒有必要。 – fedorqui

+0

'print'將在'sed'執行操作之前打印文件的名稱。可能是OP想要的東西。 –

+0

假設你真的使用'sed -i'來「保存in-place」,否則輸出將在你的例子中進行。我認爲@fedorqui是一些東西。祝你好運。 – shellter

回答

3

感謝格倫·傑克曼的忠告:

我需要把周圍的括號報價爲這樣:

-exec sed "s/foo/bar/g" '{}' \; 

比我最初如何張貼相反。

相關問題