2013-08-28 60 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