如果属性不存在,我想写一个Chef Recipe来为我的XML属性添加属性,如果属性存在则设置值。
XML_FILE:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="false" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
如果SSLEnabled键不存在,我想为每个Connector标记添加一个新属性SSLEnabled="true"
。如果属性已存在,请将值更新为“true”。
我可以考虑使用shell命令(最好是grep / sed / awk)吗?
如果没有,哪个资源适用于此用例?
P.S:我的连接器XML标签可以跨越多行或单行。
xmlstarlet ed --insert '//Connector[not(@SSLEnabled)]' \
--type attr --name 'SSLEnabled' --value "true" \
file.xml
要将输出保存到同一文件中,请在--inplace
子命令后添加ed
选项。