yq 从键值对中获取值

yq to get values from key value pair

我有一个简单的 values.yaml 文件,其中包含以下数据:

images:
  tags:
    one: abc:v0.3-16-07
    two: xyz:ng-0.23.0
    pq: qaa:0df1e21e752b3d3.2020-04-27_1

使用

yq -r --yaml-output ".images.tags" values.yaml

我可以低于输出

one: abc:v0.3-16-07
two: xyz:ng-0.23.0
pq: qaa:0df1e21e752b3d3.2020-04-27_1

但是我怎样才能从上面得到值呢?

您不需要使用 --yaml-output 标志,它会尝试解析定义为 YAML 实体的过滤器的输出。要获取原始字符串,请在 JSON 上下文本身

中使用过滤器
yq -r '.images.tags[]'

找到答案,Inian 发布了一个答案,但有一个小改动

yq -r '.images.tags | to_entries[].value | split(":")[0]' values.yaml