Skip to content

Delete

yq delete <yaml_file|-> <path_expression>

The delete command will delete all the matching nodes for the path expression in the given yaml input.

See docs for path expression for more details.

Deleting from a simple document

Given a sample.yaml file of:

b:
  c: 2
  apples: green

then

yq d sample.yaml b.c

will output

b:
  apples: green

From STDIN

Use "-" (without quotes) in-place of a file name if you wish to pipe in input from STDIN.

cat sample.yaml | yq d - b.c

Deleting in-place

yq d -i sample.yaml b.c

will update the sample.yaml file so that the 'c' node is deleted

Multiple Documents

Delete from single document

Given a sample.yaml file of:

something: else
field: leaveMe
---
b:
  c: 2
field: deleteMe

then

yq w -d1 sample.yaml field

will output:

something: else
field: leaveMe
---
b:
  c: 2

Delete from all documents

Given a sample.yaml file of:

something: else
field: deleteMe
---
b:
  c: 2
field: deleteMeToo

then

yq w -d'*' sample.yaml field

will output:

something: else
---
b:
  c: 2