寻求yq命令:提取YAML文件services下的name字段
使用yq提取YAML中services列表的name字段
针对你的需求,不同版本的yq工具对应不同的命令,以下是主流版本的实现方式:
mikefarah/yq(v4+,当前常用版本)
执行以下命令即可只保留services列表中每个元素的name键值对:
yq '.services |= map({name: .name})' input.yaml
命令说明
.services定位到目标列表map({name: .name})遍历列表中的每个对象,仅保留name字段|=将处理后的结果重新赋值给.services,保证输出结构完整
kislyuk/yq(Python实现的旧版本)
如果你使用的是基于Python的yq,可以用这个命令:
yq -y '.services[] |= {name: .name}' input.yaml
命令说明
.services[]遍历services下的每个元素{name: .name}保留当前元素的name字段-y参数指定输出为YAML格式
示例验证
输入YAML:
services: - name: svc1 location: asia timezone: india - name: svc2 location: europe timezone: uk cities: - london - name: svc3 location: usa timezone: east cities: - new-york - brooklyn
执行命令后输出:
services: - name: svc1 - name: svc2 - name: svc3
内容的提问来源于stack exchange,提问作者jrz
相关产品推荐
相关产品推荐

