以下に示すように、MyIDが複数回表示されるXMLファイルがあります。
MyID="dett090900990000"
MyID=""
すべての値を一意の値に置き換えたいです。
たとえば、xmlファイルに3つのエントリがある場合、MyID=""
スクリプトの実行時にMyID値として使用されるパラメータを渡します(ただし、各エントリに増分値が割り当てられます)。
つまり、スクリプトを次のように実行するときmyscript.sh 7777777878889888
出力は次のようになります(つまり、MyIDのすべての値が変更され、一意の値を持つことを意味します)。何でも可能です(数値、文字列、混合)。
MyID="77777778788898881"
MyID="77777778788898882"
MyID="77777778788898883"
ご覧のとおり、指定された値に1、2、3が追加されます。
この問題を解決するための簡単なコマンドを探しています!ありがとうございます!
ベストアンサー1
Perlでは、次のことができます。
perl -pe 'BEGIN { $v=shift; }
s/(MyID=")[^"]*(")/$1.$v.++$t.$2/ge' 7777777878889888 foo.xml bar.xml