php脚本上的sed bash命令

我需要通过简单的php脚本从dhcpd.conf文件中删除一些行。 所以我正在尝试使用sed命令来做到这一点。
终端我尝试使用此命令从第1行到第3行删除它的工作原理:</ p>

  sed  -i'1,3d'pippo.txt 
</ code> </ pre>

问题是我无法理解如何使用sed传递一些php变量用于行数。
需要这样的东西:</ p>

  sed -i'$ var1,$ var2d'pippo.txt 
</ code> </ pre>

可以有人 帮助我在php上为该命令提供正确的sintax。
谢谢。</ p>
</ div>

展开原文

原文

I need to delete some lines from my dhcpd.conf file by a simple php script. So I'm trying to use sed command to do that. On terminal I've tryed to use this command to delete from line 1 to 3 and it works:

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

The problem is that i can't understand how to use sed passing some php variable for line numers. I need something like:

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

can someone help me with the correct sintax for that command on php pls. Thanks.

1个回答



只需使用双引号展开变量并用大括号包装变量。</ p>

 <  code> var1 = 1 
var2 = 2
sed -i“$ {var1},$ {var2} d”pippo.txt
</ code> </ pre>

您可以定义变量 as $ var2d </ code>。 如果需要使用变量 $ var2 </ code>,后跟字母 d </ code>,则必须使用大括号,如 $ {var2} d </ code>。 但是,在这种情况下, $ var1 </ code>不需要这样做,因为没有歧义,但最好是按照惯例进行操作。</ p>
</ div>

展开原文

原文

Just use double quotes to expand the variables and wrap the variables with curly braces.

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

You can define a variable as $var2d. If you need to use the variable $var2, followed by letter d, then you must use curly braces as in ${var2}d. However this is not necessary for $var1 in this case as there is no ambiguity, but it's good to follow as a practice.

doucuo1642
doucuo1642 我需要做的是从文件中删除一些行。 例如,我需要通过php脚本的sed命令从第2行删除到第5行。 当我尝试使用来自终端指定行的sed命令但是当我尝试在我的脚本脚本上使用php变量执行此操作时,它是有效的。 没有删除任何行。
接近 3 年之前 回复
doumei1908
doumei1908 你的最外面的引号是单引号,因此里面的任何东西都不会被扩展。 允许扩展内部,交换单引号和双引号。 顺便说一句,你的sed命令总是错的。 你想做什么?? 只是为了演示,以下将仅复制第一行和第二行(但不产生任何输出)。 $ var1 = 1; $ var2 = 2; $ output = shell_exec(“sed -i'$ {var1},$ {var2} p'pippo.txt”);
接近 3 年之前 回复
dongze8698
dongze8698 谢谢你的回答。 无法理解为什么还是没有用。 $ var1 = 1; $ var2 = 2; $ output = shell_exec('sed -i“$ {var1},$ {var2}”pippo.txt');
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问