求助shell脚本修改xml的值

xml内容如下:
想通过sell脚本完成如下修改,将package="com.2.2"一行中的value和defaultValue修改掉,请问高手如何操作啊~谢谢
xml内容如下:
<setting id="15" name="10121" value="aaa" package="com.a.a" defaultValue="aaa" defaultSysSet="true" tag="null" />
<setting id="15" name="10121" value="bbb" package="com.2.2" defaultValue="bbb" defaultSysSet="true" tag="null" />

value和defaultValue修改成ccc
<setting id="15" name="10121" value="aaa" package="com.a.a" defaultValue="aaa" defaultSysSet="true" tag="null" />
<setting id="15" name="10121" value="ccc" package="com.2.2" defaultValue="ccc" defaultSysSet="true" tag="null" />

第1个回答  2021-08-31
假设你的内容在1.xml中,执行这个命令就行了(先备份一份原文件,-i参数会直接将结果覆盖到原文件上):
sed -i 's/\(\svalue=\"\)[^\"]*\"/\1ccc\"/;s/\(\sdefaultValue=\"\)[^\"]*\"/\1ccc\"/;' 1.xml追问

a=123456
sed -i '/com.2.2/{s/\(value=\"\)[^\"]*\"/\1'$a'\"/;s/\(defaultValue=\"\)[^\"]*\"/\1'$a'\"/};' 1.xml

我改成这样成功了.

本回答被提问者采纳
第2个回答  2021-08-31
文件格式简单的化,可以用sed结合正则表达式修改。追问

我要修改com.2.2的那一行哦

追答

可私信帮写脚本或exe

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网