我想运行搜索和替换,我正在尝试以下命令:
sed -i "s/\$enviro ?=.*[^;]/ = 1;/g" constants.php
出于某种原因,当我尝试运行时,它变为:
sed -i "s/\$enviro\ \?=.\*\[\^\;\]/\ =\ 1\;/g\" constants.php
这会产生错误:
sed: -e expression #1, char 28: unknown option to `s'
我只是想运行正则表达式\$enviro ?=.*[!;]
并将其替换为$enviro = 1;
。
输入 - 一个大型配置文件,其中一行是:
$enviro = 0;
输出 - 仍然很大的配置文件:
$enviro = 1;
答案 0 :(得分:1)
你可以试试这个gnu sed
sed -i -r 's/(\$enviro *= *)[^;]*/\1 1/' file
答案 1 :(得分:1)
您可以使用此sed命令:
sed -i.bak 's/\(\$enviro *=\).*/\1 1;/' constants.php