yaml - yq 命令没有将内容持久写入文件

标签 yaml yq

我正在使用 yq 工具将数据写入 yaml 文件,但无法将数据持久写入 yaml 文件。当执行下面的命令时,它会返回我期望的输出到控制台,但它只将第一部分写入文件......非常感谢任何帮助。

yq版本:3.4.1

命令:

yq n affinity-controller.fresh_install "False" > history.yaml
yq w -d'*' history.yaml snapshot-validation-webhook.fresh_install "False"

执行上述命令后history.yaml的内容

affinity-controller:
  fresh_install: False

预期输出:

affinity-controller:
  fresh_install: False
snapshot-validation-webhook:
  fresh_install: False

最佳答案

对于 yq v3,根据文档,你应该这样做:

yq w -i history.yaml snapshot-validation-webhook.fresh_install "False"

对于 yq v4(请注意前导点):

yq e '.snapshot-validation-webhook.fresh_install=False' -i history.yaml

在本地主机上进行测试和验证。

Snap 用户:请注意 yq:4.30.7 中存在错误 https://github.com/mikefarah/yq/issues/1521

症状:运行 yq 时会出现以下错误: 错误:chown/tmp/temp1636774104:不允许操作

将 yq 降级到最新工作版本 (4.30.3):sudo snapfresh yq --channel=v4/stable

关于yaml - yq 命令没有将内容持久写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75118998/

相关文章:

flutter - 编译时AudioService flutter 包错误

ruby - 如何访问 Jekyll 中另一个页面中的 YAML 信息

python - pickle `persistent_id` 的替代品?

aws-cloudformation - 如何使用 yq 设置带有函数简写(即 !Sub)的 cloudformation 字段?

yaml - 是否可以使用 YQ 对列表进行切片并将其写回 YAML 文件

bash - 将 yaml 数组转换为字符串数组

kubernetes - 使用 yq 替换 docker 镜像的名称

curl - 如何在 yml 中运行 curl 请求

xml - 将 Liquibase XML 转换为 YAML?

powershell - 在 PowerShell 中使用 YQ 时出现引用问题