変更したい大きな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)">