Regex sed试图用另一个字符串替换字符串

Regex sed试图用另一个字符串替换字符串,regex,bash,sed,Regex,Bash,Sed,我的bash脚本中有以下regex命令: sed -i -e 's/\(expose_php = On\)/\1expose_php = Off/' /etc/php/php.ini 而不是取代: expose_php = On 与 它正在做以下工作: expose_php = Onexpose_php = Off 这是我第一次尝试bash和sed。。。 任何提示都将不胜感激。您可以使用: sed -i -e 's/expose_php = On/expose_php = Off/

我的bash脚本中有以下regex命令:

 sed -i -e 's/\(expose_php = On\)/\1expose_php = Off/' /etc/php/php.ini
而不是取代:

  expose_php = On

它正在做以下工作:

 expose_php = Onexpose_php = Off
这是我第一次尝试bash和sed。。。 任何提示都将不胜感激。

您可以使用:

sed -i -e 's/expose_php = On/expose_php = Off/' /etc/php/php.ini

无需捕获匹配项并使用back reference
\1
替换您的案例。

您正在捕获
expose\u php=On
,然后使用
\1
打印回来。
sed -i -e 's/expose_php = On/expose_php = Off/' /etc/php/php.ini