2017-02-13 176 views
0

我有一個文件夾中的某些XML文件,我想替換文件中定義的一個不同的路徑,所以原來的文件包含:替換字符串反斜槓

<Ruta MIMEType="application/pdf">\\srvfsrvivwsk02.preprod.corp\SDD\Cap_Incoming\example.pdf</Ruta> 

而且結果應該是:

<Ruta MIMEType="application/pdf">\\srvfsrvivwsk35.preprod.corp\SDD2\Cap2_Incoming\Incoming2\example.pdf</Ruta> 

使用以下命令我試着,但它不工作:

a='\\srvfsrvivwsk02.preprod.corp\SDD\Cap_Incoming' 
b='\\srvfsrvivwsk35.preprod.corp\SDD2\Cap2_Incoming\Incoming2' 

sed -i 's/'$a'/'$b'/g' exaple.xml 

它似乎反斜槓不能按預期工作。你能幫我解決這個問題嗎?

+0

的問題是,它需要在Linux腳本中完成和計劃,因爲文件將抵達每天 – user3270648

回答

0

反斜槓將難逃以下字符,所以你可以使用兩個反斜槓\\匹配每個\

sed 's/\\\\srvfsrvivwsk02.preprod.corp\\SDD\\Cap_Incoming/\\\\srvfsrvivwsk35.preprod.corp\\SDD2\\Cap2_Incoming\\Incoming2/g' example.xml

+0

它工作正常,但現在我需要使用變量: originalPath = \\\\ srvfsrvivwsk02.preprod.corp \\ SDD \\ Cap_Incoming targetPath = \\\\ srvfsrvivwsk35.preprod.corp \\ SDD2 \\ Cap2_Incoming \\ Incoming2 任何想法? sed's/$ originalPath/$ targetPath/g'example.xml – user3270648