2017-08-01 127 views
1

我需要通过一个简单的php脚本从我的dhcpd.conf文件中删除一些行。所以我试图用sed命令来做到这一点。 在终端我tryed使用此命令从1号线到上删除对3和它的作品:关于php脚本的sed bash命令

sed -i '1,3d' pippo.txt 

的问题是,我不明白如何用sed通过一些PHP变量线numers。 我需要这样的东西:

sed -i '$var1,$var2d' pippo.txt 

有人可以帮我正确sintax对PHP的PLS该命令。 谢谢。

回答

0

只需使用双引号扩展变量并用大括号包装变量。

var1=1 
var2=2 
sed -i "${var1},${var2}d" pippo.txt 

您可以将变量定义为$var2d。如果您需要使用变量$var2,后跟字母d,则必须使用大括号,如${var2}d。然而,在这种情况下,$var1并不是必要的,因为它没有任何含糊之处,但作为一种实践很好。

+0

谢谢你的回答。不明白为什么仍然没有工作。 $ var1 = 1; $ var2 = 2; $ output = shell_exec('sed -i“$ {var1},$ {var2}”pippo.txt'); –

+0

你最外面的引号是单引号,因此内部的任何东西都不会被扩展。为了允许扩展内部,交换单引号和双引号。顺便说一句,你的'sed'命令无论如何都是错误的。你想做什么??只是为了演示,下面将只复制第一行和第二行(尽管没有产生任何输出)。 '$ var1 = 1; $ var2 = 2; $ output = shell_exec(“sed -i'$ {var1},$ {var2} p'pippo.txt”);' – Anubis

+0

我需要做的是从文件中删除一些行。例如我需要通过PHP脚本通过sed命令从第2行删除第5行。它是工程,当我尝试从终端指定行使用sed命令,但是当我尝试用我的脚本脚本上的php变量做到这一点不起作用。没有行被删除。 –