我有一个如下所示的 XML 文件。我想使用如下的 shell 脚本更改每个参数名称的默认值处的值:
其中参数名称 = 协议且默认值 = tcp,
其中参数名称 = 端口且默认值 = 7223,
其中参数名称 = 用户名且默认值 = test,
例子:
<task-arguments>
<argument name="protocol" is-required="false" default-value="ssl"/>
<argument name="port" is-required="true" default-value="7222"/>
<argument name="username" is-required="true" default-value="admin"/>
</task-arguments>
答案1
使用 xmlstarlet:
xmlstarlet ed --inplace -u '/task-arguments/argument[@name="protocol"]/@default-value' -x 'string("tcp")' file.xml
xmlstarlet ed --inplace -u '/task-arguments/argument[@name="port"]/@default-value' -x 'string("7223")' file.xml
xmlstarlet ed --inplace -u '/task-arguments/argument[@name="username"]/@default-value' -x 'string("test")' file.xml