只是尝试编写一个脚本来在php.ini中进行简单的正则表达式替换,我想要做的就是用;cgi.fix_pathinfo=1
替换行cgi.fix_pathinfo=0
。
理想情况下,要避免安装任何其他软件包,因此sed似乎是一个合乎逻辑的选择,因为它与FreeBSD捆绑在一起。我尝试过以下但似乎没有效果:
sed 's/;cgi\.fix_pathinfo=1/cgi\.fix_pathinfo=0/' /usr/local/etc/php.ini
答案 0 :(得分:3)
要使用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
请注意,在这种情况下,引号括起来的空格和空字符串是必需的。你不能简单地用GNU sed编写sed -i -e '...
。