awk/sed を使用して構成ファイルを変更する

awk/sed を使用して構成ファイルを変更する

2つの異なるディレクトリにほぼ同じ2つの設定ファイルがあります。

## file1.conf ##
tunnel:
    enable: true
    interval: 20
    public: false

loop:
    enable: false
    interval: 20
    public: false

link:
    enable: true
    interval: 20
    public: false

## file2.conf ##
tunnel:
    enable: true
    interval: 20
    public: false

loop:
    interval: 20
    enable: false
    public: false

link:
    enable: true
    interval: 20
    public: false

今私は変えたい有効: 偽到着有効: 事実しかし、ただリング両方のファイルのセクション。 1つのコマンドセットのみを使用してこれら2つのファイルをどのように処理できますか?

ベストアンサー1

これは内部編集を使用して行うことができますsed -i

sed -i '/^loop:/,/^$/ { s/enable:.*$/enable: true/ }' file1.conf file2.conf

コマンドは2つの主要部分に分けられます。

/^loop:/,/^$/ { .... }

{...}これは、空白行で始まり、終わる内容に内容を制限することを意味します。loop:

中に私たちがいます。

s/enable:.*$/enable: true/

これenable:により、行が true に設定されることが保証されます。

その結果、空の行で始まり、終わるすべての行が次のように書き換えfile1.confられるように書き直します。file2.confloop:enableenable: true

おすすめ記事