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

如何在mikefarah/yq中将根节点移至新父节点下?

在mikefarah/yq中把根节点移动到新父节点的最优方法

你可以直接通过对象字面量构造的方式实现,不需要临时变量和中间节点,比你当前的临时方案更简洁高效:

yq '{cat: {dog: .}}' <<<'hello: world'

执行后会直接输出期望的结果:

cat:
  dog:
    hello: world

方法说明

这个命令的核心逻辑是直接创建一个新的YAML对象,把当前根节点(用.表示)赋值到cat.dog这个嵌套路径下,一步完成结构重组,相比你的临时方案:

  • 不需要额外定义临时变量$root
  • 不需要创建临时节点.tmp再处理,逻辑更直接
  • 代码更短,可读性更强

如果需要更复杂的嵌套结构,比如要放到foo.bar.baz下,只需要对应扩展对象字面量即可:

yq '{foo: {bar: {baz: .}}}' <<<'hello: world'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 09:32:04