2016-08-11 130 views
0

我想查找并替换整个行,包括在Linux中使用sed命令在PHP中添加新文本。我在下面尝试,但它不适用于变量,但它在我手动传递时起作用。如何在使用PHP的sed命令中使用变量替换行

示例(这是工作):

$var = exec("sed -i '/Tom/c Tom Rick' t1.conf"); 

示例(这是不工作):

$var1 = "Tom"; 
$var2 = "Rick"; 

$var = exec("sed -i '/$var1/c $var1 $var2' t1.conf"); 

我试着用双引号,但仍没有运气。有人可以帮我解决这个问题。

+0

这两个例子在我尝试时都有效。标签[tag:environment-variables]不合适 - 没有直接涉及的环境变量。 – Armali

回答

0

也许你应该从字符串中提取变量,以确保'$'不被视为字符?

$var = exec("sed -i '/".$var1."/c ".$var1." ".$var2".' t1.conf"); 
+0

谢谢Julien!解决方案工作后,一些小的修改。 –