【发布时间】:2018-11-08 23:17:52
【问题描述】:
你好,我是这样的 xml 文件。
<parameter name="END_DATE">20181031</parameter>
我想将此标签值替换为我尝试过的其他值。
dt=$(awk -F '[<>]' '/_DATE/{print $3}' test.xml)
我提取了标签值。
我有另一个像这样的变量值。
newdt=20181108
现在我需要将此值替换为提取的值。
任何帮助将不胜感激。
【问题讨论】:
-
使用
xmllint之类的工具来处理XML,而不是awk(或sed,或任何标准的面向行的工具。) -
根据@chepner 的评论,最好使用特定于 XML 的工具。例如使用xmlstarlet,您将运行以下命令:
newdt=$(xmlstarlet sel -t -c "//parameter[@name='END_DATE']/text()" test.xml) -
awk或sed的使用需要非常精确地了解用于 XML 的确切序列化。