【问题标题】:yq to get values from key value pairyq 从键值对中获取值
【发布时间】:2020-08-29 22:05:21
【问题描述】:

我有一个简单的 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 jq yq


    【解决方案1】:

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

    yq -r '.images.tags[]'
    

    【讨论】:

    • 如果只需要这些值,那么您可以简化为yq -r '.images.tags[]' input
    • @luciole75w:我实际上认为 OP 想要值的第二部分,所以使用了 to_entriessplit()。立即进行编辑
    【解决方案2】:

    找到了答案,Inian 发布了一个答案,但有一个小变化

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-13
      • 2021-03-07
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多