我正在使用 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/