yq/operators/equals.md
2021-11-03 15:00:28 +11:00

1.3 KiB

Equals

This is a boolean operator that will return true if the LHS is equal to the RHS and false otherwise.

.a == .b

It is most often used with the select operator to find particular nodes:

select(.a == .b)

Match string

Given a sample.yml file of:

- cat
- goat
- dog

then

yq eval '.[] | (. == "*at")' sample.yml

will output

true
true
false

Don't match string

Given a sample.yml file of:

- cat
- goat
- dog

then

yq eval '.[] | (. != "*at")' sample.yml

will output

false
false
true

Match number

Given a sample.yml file of:

- 3
- 4
- 5

then

yq eval '.[] | (. == 4)' sample.yml

will output

false
true
false

Dont match number

Given a sample.yml file of:

- 3
- 4
- 5

then

yq eval '.[] | (. != 4)' sample.yml

will output

true
false
true

Match nulls

Running

yq eval --null-input 'null == ~'

will output

true

Non exisitant key doesn't equal a value

Given a sample.yml file of:

a: frog

then

yq eval 'select(.b != "thing")' sample.yml

will output

a: frog

Two non existant keys are equal

Given a sample.yml file of:

a: frog

then

yq eval 'select(.b == .c)' sample.yml

will output

a: frog