用反斜杠替换字符串

时间:2017-02-13 19:50:46

标签: linux sed

我在文件夹中有一些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

似乎反斜杠不能按预期工作。你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

反斜杠将转义以下字符,因此您可以使用两个反斜杠\\来匹配每个\

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