我试图替换XML文件中的一行,但无法执行。我想替换此行:
<dp:request domain="@DOMAIN@">
有了这个:
<dp:request domain="export">
但是我不能。我尝试了sed命令的以下变体:
1.
sed -i -e "s/<dp:request domain="export">/<dp:request domain="@DOMAIN@">/g" file.xml
sed -i s#<dp:request domain="export">#<dp:request domain="@DOMAIN@">#g file.xml
XML文件:
<?xml version="1.0"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:dp="http://www.datapower.com/schemas/management" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<env:Body>
<dp:request domain="@DOMAIN@">
<dp:set-config>
<ConfigDeploymentPolicy name="@DEPLOYMENTPOLICYNAME@">
<ModifiedConfig>
<Match>*/*/crypto/cert?Name=HHMM&Property=Filename</Match>
<Type>change</Type>
<Property/>
<Value>@HHMM.crypto.cert.FileName@</Value>
</ModifiedConfig>
</ConfigDeploymentPolicy>
</dp:set-config>
</dp:request>
</env:Body>
</env:Envelope>
2条答案
按热度按时间ecfsfe2w1#
使用xmlstarlet和xpath查询:
输出
flseospp2#
考虑XSLT,一种转换XML文件的专用语言,它携带许多CLI processors(例如Saxon、Xalan)。下面使用Unix机器上可用的
xsltproc
。您可以扩展XSLT以执行 * 许多 * 其他转换,并且仍然调用单个命令行!XSLT*(保存为.xsl文件,一种特殊的.xml文件)*
Online Demo
国家牵头单位