使用 sed 替换多行

Or *_*ger 1 sed yaml

我正在尝试替换 YAML 文件的以下部分:

  ssl:
    enabled: false
Run Code Online (Sandbox Code Playgroud)

阅读

  ssl:
    enabled: true
Run Code Online (Sandbox Code Playgroud)

我试过这个,失败了: sed -i s/ssl:\n enabled: false/ssl:\n enabled: true/g

oli*_*liv 6

您可以使用sed范围:

sed '/^ *ssl:/,/^ *[^:]*:/s/enabled: false/enabled: true/' file
Run Code Online (Sandbox Code Playgroud)

范围边界是/^ *ssl:/(ssl 部分的开始)和/^ *[^:]*:/(任何其他部分)。

s是通常的替代命令。