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

yq v4打印带完整键路径的所有键值对的正确语法是什么

yq v4 输出带完整路径键值对的实现方法

你要的和v3命令等效的v4写法如下:

cat << EOF | yq e 'paths(scalars) as $p | "\($p | join(".")): \(getpath($p))"' -
a:
  b: foo
  c: bar
EOF

运行后输出和你v3的结果完全一致:

a.b: foo
a.c: bar

语法说明

  • paths(scalars):递归遍历YAML中所有存实际值的叶节点(标量节点),返回每个节点的路径数组,比如a.b对应的路径数组为["a", "b"]
  • as $p:将遍历到的路径数组暂存到变量$p中
  • join("."):将路径数组用.拼接为点分隔的全路径格式
  • getpath($p):获取当前路径对应的实际值

特殊场景适配

如果你的YAML键名本身包含.,可以修改join的拼接符避免混淆,比如用/作为分隔符:

yq e 'paths(scalars) as $p | "\($p | join("/")): \(getpath($p))"' your_file.yaml

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:06:00