You need to enable JavaScript to run this app. 使用yq在未知键名时提取顶级键与owners对应值的实现方法
优惠活动
大模型
产品
解决方案
定价
更多

使用yq在未知键名时提取顶级键与owners对应值的实现方法

完全可以通过yq工具实现该需求

根据日常使用的yq发行版,直接执行对应命令就能输出要求的逐行文本,无需额外编写Shell脚本做二次处理:

mikefarah/yq(单二进制独立发行版,多数人日常使用的版本)

执行命令:

yq '. | to_entries[] | "\(.key), \(.value.owners)"' 目标文件.yml

命令逻辑:将整个YAML结构转换为键值对条目列表,逐一遍历所有顶级条目,直接拼接顶级键名、分隔逗号、对应层级下的owners字段值。针对你给出的示例YAML,执行后输出的内容完全匹配预期:

key_1, value
key_2, value
key_3, value

如果你的YAML中存在某个顶级键下不存在owners字段的情况,对应行的owners值位置会自动输出为空,不会中断整个遍历流程。如果需要跳过没有owners字段的条目,可以在遍历逻辑里增加判断:

yq '. | to_entries[] | select(.value.owners != null) | "\(.key), \(.value.owners)"' 目标文件.yml

python-yq(基于jq封装、通过pip安装的版本)

执行命令:

yq -r 'to_entries[] | "\(.key), \(.value.owners)"' 目标文件.yml

注意这里必须加-r(原始文本输出)参数,否则输出的所有行都会被额外的双引号包裹,无法生成无格式的纯文本逐行内容。针对示例YAML的输出效果和前面的版本完全一致。
如果需要跳过没有owners字段的条目,调整后的命令:

yq -r 'to_entries[] | select(.value.owners != null) | "\(.key), \(.value.owners)"' 目标文件.yml

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 01:24:03