Answers:
如果您使用的是OS X,则这可能与sed命令无关。在OSX版本的上sed
,该-i
选项需要一个extension
参数,因此您的命令实际上被解析为extension
参数,并且文件路径被解释为命令代码。
尝试-e
显式添加参数,并''
作为参数提供给-i
:
find ./ -type f -exec sed -i '' -e "s/192.168.20.1/new.domain.com/" {} \;
看到这个。
RE error: illegal byte sequence
MacOS上的。
sed -i '' 's/blah/xx/g'
-e
后-i
做出sed
备份,这样我的所有文件:“foo.txt的” - >“foo.txt的-E”。显然我想要的是-i ''
,即不要备份更改的文件。
-i -e
与合并find
导致结束很多很多文件-e-e-e-e-e-e-e
。
在OS X上,无济于事的内置功能变得不足。解决方案是:
brew install gnu-sed
然后使用gsed代替sed,它将按预期工作。