简单的 SED 替换

simple SED replace

只是试图编写一个脚本来在 php.ini 中执行简单的正则表达式替换,我想做的是用 cgi.fix_pathinfo=0.

替换行 ;cgi.fix_pathinfo=1

理想情况下希望避免安装任何额外的软件包,因此 sed 似乎是一个合乎逻辑的选择,因为它与 FreeBSD 捆绑在一起。我尝试了以下但似乎不起作用:

sed 's/;cgi\.fix_pathinfo=1/cgi\.fix_pathinfo=0/' /usr/local/etc/php.ini

要使用 sed BSD 更改文件的内容,您可以这样做:

sed -i.bak -e 's/;cgi\.fix_pathinfo=1/cgi.fix_pathinfo=0/;' /usr/local/etc/php.ini

这将创建扩展名为 .bak 的旧文件的副本。

或者不创建副本:

sed -i '' -e 's/;cgi\.fix_pathinfo=1/cgi.fix_pathinfo=0/;' /usr/local/etc/php.ini

请注意,在这种情况下,space 和引号之间的空字符串是必需的。您不能像使用 GNU sed 那样简单地编写 sed -i -e '...