被迫为当前客户端使用 CVS,并且远程 repo 的地址已更改。我能找到在本地代码中更改远程地址的唯一方法是递归搜索和替换。
但是,使用 sed 命令我希望可以工作:
find ./ -type f -exec sed -i "s/192.168.20.1/new.domain.com/" {} \;
我收到每个文件的错误:
sed: 1: ".//file/path ...": invalid command code .
我试图逃避 sed 匹配/替换中的句点,但这并不能解决任何问题。
如果您在 OS X 上,这可能与 sed 命令无关。在 OSX 版本上sed,该-i选项需要一个extension参数,因此您的命令实际上被解析为extension参数,文件路径被解释为命令代码。
sed
-i
extension
尝试-e显式添加参数并''作为参数提供-i:
-e
''
find ./ -type f -exec sed -i '' -e "s/192.168.20.1/new.domain.com/" {} \;
看到这个。