sedで検索した1つ下の行を置換する

sedで検索した1つ下の行を置換するメモ。

syslog_output:
  enabled: true

stdout_output:
  enabled: true

こういうyamlsyslog_output:の下の行のenabledfalseにしたい場合はどうすればよいか?

こうする。

cat << EOF > test.yaml
syslog_output:
  enabled: true

stdout_output:
  enabled: true
EOF

Macなのでgsed)

$ gsed -e '/syslog_output/ { N; s/enabled: true/enabled: false/ }' test.yaml
syslog_output:
  enabled: false

stdout_output:
  enabled: true