You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用yq为已有YAML文件添加新根节点?

使用yq给YAML文件添加新根节点并嵌套原有内容

完全可以实现这个需求,用mikefarah/yq(v4及以上版本)的话,一行命令就能把原有所有根节点内容嵌套到新的mainkey下:

yq '. = {"mainkey": .}' values.yaml

如果需要直接修改原文件(原地更新),加上-i参数即可:

yq -i '. = {"mainkey": .}' values.yaml

命令说明

这个命令逻辑很直白:

  • . 代表当前整个YAML文档的根节点内容
  • 我们将根节点重新赋值为一个新对象,这个对象仅包含mainkey键,它的值就是原来的整个根节点内容

效果验证

原values.yaml内容:

key1: value1
key2: value2
key3:
  key31: value31
  key32: value32

执行命令后,文件内容会变为:

mainkey:
  key1: value1
  key2: value2
  key3:
    key31: value31
    key32: value32

你之前用+或merge没得到预期结果,是因为这些命令是用来合并平级节点的,会把mainkey和原有key1、key2等放在同一层级,而非将原有内容嵌套到mainkey内部。

内容的提问来源于stack exchange,提问作者Vini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 17:10:35