2013-08-28 89 views
1

這裏是從表示爲腳本變量的腳本的提取物在Linux文件替換的線包含特殊字符

PathToPiconPNG="/var/OscamSrvidPicon/picon/19.2E/" 
PathToOscamSrvid="/var/OscamSrvidPicon/picon/19.2E/oscam.srvid" 
PathToPiconTPL="/var/OscamSrvidPicon/oscam_picons/" 
PathToTmp="/tmp/" 

我要運行該腳本多次替代(例如)此行:

PathToPiconPNG="/var/OscamSrvidPicon/picon/19.2E/" 

本線

PathToPiconPNG="/var/OscamSrvidPicon/picon/28.2E/" 

我一直在使用SED嘗試(我知道這個例子是錯誤的,但喲ü可能得到什麼即時試圖實現)

sed 's/{PathToPiconPNG="/var/OscamSrvidPicon/picon/19.2E/"}/{PathToPiconPNG="/var/OscamSrvidPicon/picon/28.2E/"}/g' filename.txt > newfilenam.txt 

如果這是不可能的,是沒有辦法,我可以從另一個腳本

回答

2
sed -E 's/picon\/.+\//picon\/28.2E\//' filename.txt > newfilenam.txt 
+0

'sed'使用基本RE在外部設置的變量的任何方式,所以'+'不是特殊字符。此外,由於您沒有進行最低限度的匹配,因此您有可能會替換太多,例如稍後在同一行中會出現更多斜線。 –

+0

我做了一些我認爲會改變的案例。 –

+0

哇,這是輝煌..唯一的問題是,「Picon /在這個文件中發生了幾次安靜,我不想在任何地方替換它..我可以讓這個sed目標包含有問題的行的特定行 – linuxnoob