Tag

The tag operator can be used to get or set the tag of nodes (e.g. !!str, !!int, !!bool).

Get tag

Given a sample.yml file of:

a: cat
b: 5
c: 3.2
e: true
f: []

then

yq eval '.. | tag' sample.yml

will output

!!map
!!str
!!int
!!float
!!bool
!!seq

Set custom tag

Given a sample.yml file of:

a: str

then

yq eval '.a tag = "!!mikefarah"' sample.yml

will output

a: !!mikefarah str

Find numbers and convert them to strings

Given a sample.yml file of:

a: cat
b: 5
c: 3.2
e: true

then

yq eval '(.. | select(tag == "!!int")) tag= "!!str"' sample.yml

will output

a: cat
b: "5"
c: 3.2
e: true