doufang8965
doufang8965
2016-08-11 06:35
浏览 58
已采纳

如何使用PHP替换line在sed命令中使用变量

I want to find and replace the whole line including adding new text in PHP using sed command in Linux. I tried below, but it does not work for variable but it works when I manually pass.

Example (This is Working):

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

Example (This is not working):

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

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

I tried with double quote, but still no luck. Can someone please help me to resolve this problem.

图片转代码服务由CSDN问答提供 功能建议

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

示例(这是工作):

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

示例(这不起作用):

  $ var1 =“Tom”; 
 $ var2  =“Rick”; 
 
 $ var = exec(“sed -i'/ $ var1 / c $ var1 $ var2't1.conf”); 
   
 
 < 我尝试了双引号,但仍然没有运气。 有人可以帮我解决这个问题。 
 
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dongtan2017
    dongtan2017 2016-08-11 06:59
    已采纳

    Maybe you should extract variables out of your string so as to make sure the '$' is not treated as a character ?

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

相关推荐