yq/pkg/yqlib/doc/operators/alternative-default-value.md
2023-05-30 15:05:28 +10:00

1.3 KiB

Alternative (Default value)

This operator is used to provide alternative (or default) values when a particular expression is either null or false.

LHS is defined

Given a sample.yml file of:

a: bridge

then

yq '.a // "hello"' sample.yml

will output

bridge

LHS is not defined

Given a sample.yml file of:

{}

then

yq '.a // "hello"' sample.yml

will output

hello

LHS is null

Given a sample.yml file of:

a: ~

then

yq '.a // "hello"' sample.yml

will output

hello

LHS is false

Given a sample.yml file of:

a: false

then

yq '.a // "hello"' sample.yml

will output

hello

RHS is an expression

Given a sample.yml file of:

a: false
b: cat

then

yq '.a // .b' sample.yml

will output

cat

Update or create - entity exists

This initialises a if it's not present

Given a sample.yml file of:

a: 1

then

yq '(.a // (.a = 0)) += 1' sample.yml

will output

a: 2

Update or create - entity does not exist

This initialises a if it's not present

Given a sample.yml file of:

b: camel

then

yq '(.a // (.a = 0)) += 1' sample.yml

will output

b: camel
a: 1