使用sed操作xml文件

时间:2012-06-12 13:03:27

标签: android linux bash sed

我的Strings.xml文件包含以下代码:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">myurl</string>
<string name="app_name">MyApp</string>
</resources>

我希望用户使用命令行来操纵myurl的值到给定的URL。

我正在使用的命令是

sed s/myurl/http://192.168.1.1:8080/ strings.xml

但是它抛出了一个错误:sed:1:“s / myurl / http://192.168 ....”:替换命令中的坏标志:'/'

这是由两个斜杠(//)引起的。有什么方法可以将值传递给sed命令?

2 个答案:

答案 0 :(得分:3)

您可以将其他分隔符与sed一起使用,例如!

sed 's!myurl!http://192.168.1.1:8080/!' strings.xml

(丑陋)替代方案是逃避它们:

sed 's/myurl/http:\/\/192.168.1.1:8080\//' strings.xml

答案 1 :(得分:0)

在所有转义符号前使用\