我有一个XML像下面这样的文件。我想使用 shell 脚本更改每个参数名称的is-required位置和default-value位置的值。
argument name=protocol,然后is-required = "true"和default-value=tcp,argument name =port那么在哪里is-required = "true" default-value= 7223,argument name =然后is-required = "true" default-value=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>
Run Code Online (Sandbox Code Playgroud)
使用XMLStarlet:
xml ed -P \
-u '//argument[@name="protocol"]/@is-required' -v true \
-u '//argument[@name="protocol"]/@default-value' -v tcp \
-u '//argument[@name="port"]/@is-required' -v true \
-u '//argument[@name="port"]/@default-value' -v 7223 \
-u '//argument[@name="username"]/@is-required' -v true \
-u '//argument[@name="username"]/@default-value' -v admin \
file.xml
Run Code Online (Sandbox Code Playgroud)
您的样品的结果:
<task-arguments>
<argument name="protocol" is-required="true" default-value="tcp"/>
<argument name="port" is-required="true" default-value="7223"/>
<argument name="username" is-required="true" default-value="admin"/>
</task-arguments>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12313 次 |
| 最近记录: |