Kind
The kind operator identifies the type of a node as either scalar, map, or seq.
This can be used for filtering or transforming nodes based on their type.
Note that null values are treated as scalar.
Get kind
Given a sample.yml file of:
a: cat
b: 5
c: 3.2
e: true
f: []
g: {}
h: nullthen
yq '.. | kind' sample.ymlwill output
map
scalar
scalar
scalar
scalar
seq
map
scalarGet kind, ignores custom tags
Unlike tag, kind is not affected by custom tags.
Given a sample.yml file of:
a: !!thing cat
b: !!foo {}
c: !!bar []then
yq '.. | kind' sample.ymlwill output
map
scalar
map
seqAdd comments only to scalars
An example of how you can use kind
Given a sample.yml file of:
a:
b: 5
c: 3.2
e: true
f: []
g: {}
h: nullthen
yq '(.. | select(kind == "scalar")) line_comment = "this is a scalar"' sample.ymlwill output
a:
b: 5 # this is a scalar
c: 3.2 # this is a scalar
e: true # this is a scalar
f: []
g: {}
h: null # this is a scalarLast updated
Was this helpful?