Back to Yq

Alternative (Default value)

pkg/yqlib/doc/operators/alternative-default-value.md

4.53.21.3 KB
Original Source

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:

yaml
a: bridge

then

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

will output

yaml
bridge

LHS is not defined

Given a sample.yml file of:

yaml
{}

then

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

will output

yaml
hello

LHS is null

Given a sample.yml file of:

yaml
a: ~

then

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

will output

yaml
hello

LHS is false

Given a sample.yml file of:

yaml
a: false

then

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

will output

yaml
hello

RHS is an expression

Given a sample.yml file of:

yaml
a: false
b: cat

then

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

will output

yaml
cat

Update or create - entity exists

This initialises a if it's not present

Given a sample.yml file of:

yaml
a: 1

then

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

will output

yaml
a: 2

Update or create - entity does not exist

This initialises a if it's not present

Given a sample.yml file of:

yaml
b: camel

then

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

will output

yaml
b: camel
a: 1