将 10 添加到大型 xml 文件中的值

将 10 添加到大型 xml 文件中的值

我在一个大的 xml 文件中有数百个 svg 图表,我想在其中更改

<svg:g transform="matrix(1 0 0 1 59.06 88.74)">

88.74 到 98.74 即向以 开头的每一行添加 10

<svg:g transform="matrix(

没有太多的手工,如何才能完成这项任务呢?我知道有替换,但添加却没有引起我的注意。

答案1

我的回答是awk

awk -F'[ ")>]' '/\<svg\:g transform\=\"matrix\(/ {sub($(NF-3), 10+$(NF-3))}1' infile > outfile

awk带有选项的命令-F将 space ")和定义>为字段分隔符。然后搜索包含pattern的行<svg:g transform="matrix(。下一个取货字段$(NF-3)并将其替换为添加的 10 个值。

$(NF)-> 最后>$(NF-1)-> 是最后"$(NF-2)-> 是最后),最后$(NF-3)-> 是我想要添加 +10 值的期望值。

<svg:g transform="matrix(1 0 0 1 59.06  88.74    )        "      >
                                       $(NF-3) $(NF-2) $(NF-1) $(NF)

输入:

<svg:g transform="matrix(1 0 0 1 59.06 4.74)">
<svg:g transform="matrix(1 0 0 1 59.06 88.74)">
<svg:g transform="matrix(1 0 0 1 59.06 5.74)">

输出:

<svg:g transform="matrix(1 0 0 1 59.06 14.74)">
<svg:g transform="matrix(1 0 0 1 59.06 98.74)">
<svg:g transform="matrix(1 0 0 1 59.06 15.74)">

相关内容