2017-08-01 175 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變量做到這一點不起作用。沒有行被刪除。 –