小编典典

在 OS X 上使用 'sed' 和 'find' 命令时出错:“无效的命令代码。”

all

被迫为当前客户端使用 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 匹配/替换中的句点,但这并不能解决任何问题。


阅读 100

收藏
2022-05-06

共1个答案

小编典典

如果您在 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/" {} \;

看到这个

2022-05-06