値を大きくして、次の2行を置き換えます。

値を大きくして、次の2行を置き換えます。

複数回繰り返される一連の行を含むテキストファイルがあります。たとえば、

param id: 0
value: 2
description: "hello"

param id: 1
value: 3
description: "world"

引っ越したい説明する以上そして変化パラメータIDより高い値で、例えばパラメータID0の代わりに1.これを行うためにスクリプトを使用したいと思います。誰もがこれを実行できるコマンドで私を助けることができますか?

ベストアンサー1

@MelBursianがすでにコメントで提案したように、私もawk同意しますsed

awk '
    BEGIN { OFS=FS=": " }
    {
        if ($1 == "param id") {
            $2 += 1;
        }
        if ($1 == "value") {
            val=$0; getline;
            print; print val;
            next;
        }
        print;
    }
' file

おすすめ記事