sed を使用して 1 行を 3 行に置き換えます。

sed を使用して 1 行を 3 行に置き換えます。

次の構文を持つファイルがあります。

slave_master: '1.2.3.4'

sedまたはawkに置き換えたいです。

slave_master:
  - '1.2.3.4'
  - '1.2.3.5'

ファイルの長さは数百行であり、影響を受けるべきではない異なるIP値を持つ他の行もあります。コマンドでこれを実行できますか?ありがとうございます。

ベストアンサー1

sedの\ 1と\ 2は何ですか? (これを参考にしてください郵便はがき)

$ cat input.txt
hello: '234.34.34.2'
slave_master: '1.2.3.4'
test: '12.123.123.11'
hi: '234.2.32.33'


$ sed "s/\(slave_master:\)\(.*\)/\1\n     -\2\n     - '1.2.3.5'/" input.txt
hello: '234.34.34.2'
slave_master:
     - '1.2.3.4'
     - '1.2.3.5'
test: '12.123.123.11'
hi: '234.2.32.33'

おすすめ記事