ファイルの特定部分の値を変更する

ファイルの特定部分の値を変更する

複数のセクションを含むファイルがあり、セクションのすべてのパラメータ値を変更する必要があります[Test2]

入力する:

[Test_1]
abc=123
def=456
.
.
.
so on

[Test_2]
abc=123
def=456
.
.
.
so on

[Test_3]
abc=123
def=456
.
.
.
so on

予想出力:

[Test_1]
abc=123
def=456
.
.
.
so on

[Test_2]
abc=111
def=222
.
.
.
so on

[Test_3]
abc=123
def=456
.
.
.
so on

私はこれを試しました:

sed "/\[Test_2\]/{n;s/^\(abc=\).*/\1$val1/';}" input > output.new && mv output.new input
sed "/\[Test_2\]/{n;s/^\(def=\).*/\1$val2/';}" input > output.new && mv output.new input

どこで$val1=111そして$val2=222

しかし、期待した結果は出ません。誰でも助けることができますか?

ベストアンサー1

別の方法はAnsibleを使用することです。あなたのファイルはAnsibleが非常にうまく管理できるini_fileファイル形式です。

確認するhttp://docs.ansible.com/ansible/ini_file_module.html

あなたの例では、構文は非常に簡単です。

- ini_file: dest=/anotherconf
            section=Test_2
            option=abc
            value=111

おすすめ記事