mirror of
https://github.com/mikefarah/yq.git
synced 2024-11-13 22:38:04 +00:00
1.6 KiB
1.6 KiB
This operator recursively matches all children nodes given of a particular element, including that node itself. This is most often used to apply a filter recursively against all matches, for instance to set the style
of all nodes in a yaml doc:
yq eval '.. style = "flow"' file.yaml
Examples
Matches single scalar value
Given a sample.yml file of:
cat
then
yq eval '..' sample.yml
will output
cat
Map
Given a sample.yml file of:
a:
b: apple
then
yq eval '..' sample.yml
will output
a:
b: apple
b: apple
apple
Array
Given a sample.yml file of:
- 1
- 2
- 3
then
yq eval '..' sample.yml
will output
- 1
- 2
- 3
1
2
3
Array of maps
Given a sample.yml file of:
- a: cat
- 2
- true
then
yq eval '..' sample.yml
will output
- a: cat
- 2
- true
a: cat
cat
2
true
Aliases are not traversed
Given a sample.yml file of:
a: &cat
c: frog
b: *cat
then
yq eval '..' sample.yml
will output
a: &cat
c: frog
b: *cat
&cat
c: frog
frog
*cat
Merge docs are not traversed
Given a sample.yml file of:
foo: &foo
a: foo_a
thing: foo_thing
c: foo_c
bar: &bar
b: bar_b
thing: bar_thing
c: bar_c
foobarList:
b: foobarList_b
!!merge <<:
- *foo
- *bar
c: foobarList_c
foobar:
c: foobar_c
!!merge <<: *foo
thing: foobar_thing
then
yq eval '.foobar | ..' sample.yml
will output
c: foobar_c
!!merge <<: *foo
thing: foobar_thing
foobar_c
*foo
foobar_thing