次のような行のブロックを含むファイルがあります。
some lines
param.1=valueA
param.2=valueB
param.3=valueC
some other lines
いくつかのコマンドを試しましたが、実行できなかったように、行の直後に追加する perl ワンライナーを見つけようとしていますparam.3
(まあ、最大の数値を持つパラメーター) 。行で見つかった最後の一致をそれ自体で置き換え、値をインクリメントする新しい行を 1 つ置き換えたいと考えています。"param.4=valueD"
"perl -i -pe"
例(インクリメントの方法がわかりませんでした)
==#> cat /tmp/myfile.txt
param.1=valueA
param.2=valueB
param.3=ValueC
==#> perl -pe 'BEGIN{undef $/;} s/((param\.(\d+)=\S+\s+)*)/\1param.\3=newvalue\n/ms' /tmp/myfile.txt
param.1=valueA
param.2=valueB
param.3=ValueC
param.3=newvalue