Comment Operators

Use these comment operators to set or retrieve comments.

Set line comment

Given a sample.yml file of:

a: cat

then

yq eval '.a lineComment="single"' sample.yml

will output

a: cat # single

Use update assign to perform relative updates

Given a sample.yml file of:

a: cat
b: dog

then

yq eval '.. lineComment |= .' sample.yml

will output

a: cat # cat
b: dog # dog

Set head comment

Given a sample.yml file of:

a: cat

then

yq eval '. headComment="single"' sample.yml

will output

# single
a: cat

Set foot comment, using an expression

Given a sample.yml file of:

a: cat

then

yq eval '. footComment=.a' sample.yml

will output

a: cat
# cat

Remove comment

Given a sample.yml file of:

a: cat # comment
b: dog # leave this

then

yq eval '.a lineComment=""' sample.yml

will output

a: cat
b: dog # leave this

Remove all comments

Note the use of ... to ensure key nodes are included.

Given a sample.yml file of:

a: cat # comment
# great
b: # key comment

then

yq eval '... comments=""' sample.yml

will output

a: cat
b:

Get line comment

Given a sample.yml file of:

a: cat # meow

then

yq eval '.a | lineComment' sample.yml

will output

meow

Get head comment

Given a sample.yml file of:

a: cat # meow

then

yq eval '. | headComment' sample.yml

will output

Get foot comment

Given a sample.yml file of:

a: cat # meow

then

yq eval '. | footComment' sample.yml

will output