有一个文件调用php_fileinfo.dll
,其中包含类似的内容。
config.php
我需要做的是,无论<?php
$main="dev.digin.io";
之后包含的字符串值是否需要替换为$main=
等shell变量中的内容。
最终的config.php必须是这样的。 (考虑bash shell变量包含一些像$ MainDomain = prod.mail.com)
$MainDomain
答案 0 :(得分:0)
@Daz,请你试着跟我来告诉我这是否对你有帮助。
awk -vVAR="$MainDomain" '/\$mainDomain/{sub(/=.*/,"="VAR,$0);} 1' Input_file
其中-vVAR =&#34; $ MainDomain&#34; VAR是awk的变量,它的shell变量名为MainDomain的值。在awk中,我们不能直接shell变量值,所以我们可以将它分配给awk变量并将其用于它。
如果您对此有任何疑问,请与我们联系。
答案 1 :(得分:0)
这种令人讨厌的sed替代品可以满足您的需求:
$ MainDomain=prod.mail.com
$ sed -E "s/^(\\\$main=\")[^\"]+(\";)$/\1$MainDomain\2/" config.php
<?php
$main="prod.mail.com";
添加-i
开关以“就地”编辑文件。使用-i.bak
创建备份文件config.php.bak
。
在这种情况下,最好的办法就是使用配置文件并调整PHP代码以便从中读取,因为像这样修改源代码是一项有风险的业务。