Group By

This is used to group items in an array by an expression.

Group by field

Given a sample.yml file of:

- foo: 1
  bar: 10
- foo: 3
  bar: 100
- foo: 1
  bar: 1

then

yq 'group_by(.foo)' sample.yml

will output

- - foo: 1
    bar: 10
  - foo: 1
    bar: 1
- - foo: 3
    bar: 100

Group by field, with nulls

Given a sample.yml file of:

- cat: dog
- foo: 1
  bar: 10
- foo: 3
  bar: 100
- no: foo for you
- foo: 1
  bar: 1

then

yq 'group_by(.foo)' sample.yml

will output

- - cat: dog
  - no: foo for you
- - foo: 1
    bar: 10
  - foo: 1
    bar: 1
- - foo: 3
    bar: 100

Last updated