如何在两个包含特殊字符的字符串之间插入一个字符串?

如何在两个包含特殊字符的字符串之间插入一个字符串?

我正在编写一个脚本来将正确的卫星网址插入到/etc/sysconfig/rhn/up2date

我试图将此命令添加到脚本中:

sed -i 's/https//.*XMLRPC///https servername.com XMLRPC/g' /etc/sysconfig/rhn/up2date

但我得到了:

sed: -e expression #1, char 10: unknown option to `s'

我该如何解决?

答案1

您正在使用/作为分隔符作为正则表达式的一部分,不使用任何转义符。Sed 无法区分不同的用途,因此会感到困惑。您可以\在正则表达式和替换模式中的所有斜杠前使用(反斜杠),但在这种情况下,使用不同的分隔符会更容易。我对您的行也有点困惑,但我的猜测是,使用#作为 sed 模式分隔符。:

sed -i 's#https//.*XMLRPC#//https servername.com XMLRPC#g' /etc/sysconfig/rhn/up2date

相关内容