大きなXMLファイルの値に10を追加します。

大きなXMLファイルの値に10を追加します。

変更したい大きな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フィールド区切り"文字を定義します。次に、パターンを含む行を検索します。次のピックアップフィールドを追加した10個の値に置き換えます。)><svg:g transform="matrix($(NF-3)

$(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)">

おすすめ記事