Search code examples
yamlyq

Using yq, delete any key whose scalar value is false


I would like to delete all keys that have a scalar value of false, using https://github.com/mikefarah/yq:

Input

project: false_deletion
fields:
  name:
    numeric: false
    value: John
  age:
    value: 25
    numeric: true
  address:
    value: 123 Main St
    numeric: false

Desired output

project: false_deletion
fields:
  name:
    value: John
  age:
    value: 25
    numeric: true
  address:
    value: 123 Main St

Solution

  • yq e 'del(.. | select(. == false))' input
    

    Will del() all those keys where the value is false.

    Output:

    project: false_deletion
    fields:
      name:
        value: John
      age:
        value: 25
        numeric: true
      address:
        value: 123 Main St