如何使用yq获取YAML数组元素的父节点?
用yq命令获取YAML中指定元素的父节点
假设你的YAML文件名为data.yaml,内容如下:
foo: - element1 - element2 bar: - element3 - element4
可以根据你使用的yq版本选择对应命令:
mikefarah/yq(v4+ 主流版本)
执行以下命令即可得到element4的父节点名称:
yq eval 'keys[] as $k | .[$k] | select(.[] == "element4") | $k' data.yaml
命令逻辑:
- 遍历所有顶层键并暂存为变量
$k - 取出当前键对应的数组值
- 筛选出包含
element4的数组 - 输出对应的键名
执行结果:bar
kislyuk/yq(Python 实现版本)
若使用的是基于Python的yq,可运行:
yq -r 'to_entries[] | select(.value[] == "element4") | .key' data.yaml
命令逻辑:
- 将YAML结构转换为键值对条目
- 筛选出值数组包含
element4的条目 - 输出该条目的键名
执行结果:bar
内容的提问来源于stack exchange,提问作者pkaramol
相关产品推荐
相关产品推荐

