如何使用awk或Perl递增大型XML文件中的数字?

DC.*_*DC. 5 perl awk

我有一个XML文件,其中包含以下行:

            <VALUE DECIMAL_VALUE="0.2725" UNIT_TYPE="percent"/>
Run Code Online (Sandbox Code Playgroud)

我想将此值增加.04并保持XML的格式.我知道这可以使用Perl或awk脚本,但是我很难用表达式来隔离数字.

PEZ*_*PEZ 4

如果您使用的是 xsltproc 命令,我建议您使用 XSLT。

\n\n

对于 Perl 解决方案,我会选择使用 DOM。查看这篇用 Perl 进行 DOM 处理的文章。

\n\n

就是这样说的。如果您的 XML 文件是以可预测的方式生成的,则像下面这样的 na\xc3\xafve 可能会起作用:

\n\n
perl -pe \'s#(<VALUE DECIMAL_VALUE=")([0-9.]+)(" UNIT_TYPE="percent"/>)#"$1" . ($2 + 0.4) . "$3"#e;\'\n
Run Code Online (Sandbox Code Playgroud)\n