yq/operators/compare.md
2022-03-29 11:12:22 +11:00

1.7 KiB

Compare Operators

Comparison operators (>, >=, <, <=) can be used for comparing scalar values of the same time.

The following types are currently supported:

  • numbers
  • strings
  • datetimes
  • equals / not equals (==, !=) operators here
  • boolean operators (and, or, any etc) here
  • select operator here

{% hint style="warning" %} Note that versions prior to 4.18 require the 'eval/e' command to be specified.

yq e <exp> <file> {% endhint %}

Compare numbers (>)

Given a sample.yml file of:

a: 5
b: 4

then

yq '.a > .b' sample.yml

will output

true

Compare equal numbers (>=)

Given a sample.yml file of:

a: 5
b: 5

then

yq '.a >= .b' sample.yml

will output

true

Compare strings

Compares strings by their bytecode.

Given a sample.yml file of:

a: zoo
b: apple

then

yq '.a > .b' sample.yml

will output

true

Compare date times

You can compare date times. Assumes RFC3339 date time format, see date-time operators for more information.

Given a sample.yml file of:

a: 2021-01-01T03:10:00Z
b: 2020-01-01T03:10:00Z

then

yq '.a > .b' sample.yml

will output

true

Both sides are null: > is false

Running

yq --null-input '.a > .b'

will output

false

Both sides are null: >= is true

Running

yq --null-input '.a >= .b'

will output

true