Linux 用于递归查找和替换的Sed命令失败

Linux 用于递归查找和替换的Sed命令失败,linux,macos,sed,replace,Linux,Macos,Sed,Replace,我正在我的OSX上尝试递归查找和替换命令,如下所示: find . -type f -name '*.*' -exec sed -i '' s/Renseigner votre question en 140 caractères max/Renseigner votre question en 140 caractères max./ {} + 但我明白了: sed: 1: "s/Renseigner": unterminated substitute pattern sed: 1: "s/

我正在我的
OSX
上尝试递归查找和替换命令,如下所示:

find . -type f -name '*.*' -exec sed -i '' s/Renseigner votre question en 140 caractères max/Renseigner votre question en 140 caractères max./ {} +
但我明白了:

sed: 1: "s/Renseigner": unterminated substitute pattern
sed: 1: "s/Renseigner": unterminated substitute pattern

有人知道为什么吗?

在sed命令周围加上引号。

解决了,我只需逃离空白!不,这样做是错误的,因为除了处理空间,还有很多陷阱。请用单引号替换:
's/foo/bar/'
。谢谢您的回复,但我还是成功了。顺便说一句,您知道如何编写脚本以输入要查找和替换的字符串,例如:#!bin/bash查找-键入f-name'.'-exec sed-i''s/$1/$2/{}+这有意义吗,我怎样才能在shell中输入字符串?@user1611830是的,那么使用双引号。你的意思是用双引号括住“$1”和“$2”?不完全正确:
“s/$1/$2/”
如果字符串很简单,可能就足够了。