yq to get values from key value pair
Asked Answered
J

2

6

I have a simple values.yaml file which has below data:

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

Using

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

I can get below output

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

But how can i get the values from the above?

Jaggy answered 13/5, 2020 at 15:58 Comment(0)
T
11

You don't need to use --yaml-output flag, which tries to parse the output of the filter defined as a YAML entity. For getting the raw strings, use a filter in the JSON context itself

yq -r '.images.tags[]'
Timberland answered 13/5, 2020 at 16:52 Comment(2)
If only the values are needed then you could simplify to yq -r '.images.tags[]' input.Bonneau
@luciole75w: I was actually thinking OP wanted the second part of values, so used the to_entries with split(). Made the edit nowTimberland
J
2

Found the answer, Inian kind of posted an answer but there was a small change

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

Jaggy answered 13/5, 2020 at 16:58 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.