Sed 正则表达式命令替换
Sed regex command replacement
在我的 php.ini 我有
error_reporting = E_ALL
我想改回
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
使用 sed 命令
sed -i "s/^error_reporting = .*/error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT/" /etc/php5/apache2/php.ini
我得到了不同的结果:
error_reporting = E_ALL error_reporting = E_ALL ~E_DEPRECATED error_reporting = E_ALL ~E_STRICT
但应该是
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
顺便说一句,sed 命令在 bash 脚本中。
&
在 sed s
命令的替换子句中具有特殊含义;它被匹配的字符串替换。你必须逃避它:
sed -i 's/^error_reporting = .*/error_reporting = E_ALL \& ~E_DEPRECATED \& ~E_STRICT/' /etc/php5/apache2/php.ini
在我的 php.ini 我有
error_reporting = E_ALL
我想改回
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
使用 sed 命令
sed -i "s/^error_reporting = .*/error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT/" /etc/php5/apache2/php.ini
我得到了不同的结果:
error_reporting = E_ALL error_reporting = E_ALL ~E_DEPRECATED error_reporting = E_ALL ~E_STRICT
但应该是
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
顺便说一句,sed 命令在 bash 脚本中。
&
在 sed s
命令的替换子句中具有特殊含义;它被匹配的字符串替换。你必须逃避它:
sed -i 's/^error_reporting = .*/error_reporting = E_ALL \& ~E_DEPRECATED \& ~E_STRICT/' /etc/php5/apache2/php.ini