在 YAML 中更新键=值对数组中的特定值

Update specific value in an array of key=value pairs in YAML

给定以下来自 yml 文件的片段,我如何才能将 MAINTENANCE_MODE 的值更改为 true?

首选使用 mikefarah/yq v4.18+ 的解决方案。

web:
  environment:
    - DEBUG=1
    - PORT=8082
    - MAINTENANCE_MODE=false
    - APP_HOME=/opt/app

如果你知道它在这个位置,使用

yq -i '.web.environment[2] = "MAINTENANCE_MODE=true"' input.yml

如果必须查找,请使用

yq -i '.web.environment[] |= sub("^(MAINTENANCE_MODE=).*$", "true")' input.yml