我正在运行以下命令:
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).
我有同伴看着它,他也被难倒了.我最后走了一条不同的路线,但我仍然想知道这里到底出了什么问题.
解决方法
感谢格伦杰克曼的建议:
我需要在括号周围加上引号:
-exec sed "s/foo/bar/g" '{}' \;
而不是我最初发布它.