shell脚本如何替换xml中指定的属性值

在/home/domain路径下会存放所有domain的xml文件,如domain1.xml, domain2.xml, domain3.xml...
每个文件内容大致如下:
<domain>
<name>test_name</name>
<id>23d7ef98-d3fa-489c-186e-6174d95a1ca6</id>
</domain>

怎样将每个xml文件中id里的值替换为我所指定的值,比如下面id那一行变成<id>123456-123456</id>, 注意domain下的每个xml文件id那行都要替换为指定的id。

sed 's/<id>.*<\/id>/<id>123456-123456<\/id>/g' old.xml > new.xml

追问

谢谢你,我不想新建文件,就在原来的文件上做替换,怎么做呢?

追答

sed -i 's/.*/123456-123456/g' old.xml

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-04
sed -i 's;<id>.*<\/id>;<id>123456-123456<\/id>;g' /home/domain/*.xml

不需要楼下的那种重定向,-i就可以直接编辑并保存。一条命令处理目录下的所有文件本回答被提问者采纳
相似回答