y
y
yq
Search…
Document Index
Use the documentIndex operator (or the di shorthand) to select nodes of a particular document.
Note that versions prior to 4.18 require the 'eval/e' command to be specified.
yq e <exp> <file>

Retrieve a document index

Given a sample.yml file of:
1
a: cat
2
---
3
a: frog
Copied!
then
1
yq '.a | document_index' sample.yml
Copied!
will output
1
0
2
---
3
1
Copied!

Retrieve a document index, shorthand

Given a sample.yml file of:
1
a: cat
2
---
3
a: frog
Copied!
then
1
yq '.a | di' sample.yml
Copied!
will output
1
0
2
---
3
1
Copied!

Filter by document index

Given a sample.yml file of:
1
a: cat
2
---
3
a: frog
Copied!
then
1
yq 'select(document_index == 1)' sample.yml
Copied!
will output
1
a: frog
Copied!

Filter by document index shorthand

Given a sample.yml file of:
1
a: cat
2
---
3
a: frog
Copied!
then
1
yq 'select(di == 1)' sample.yml
Copied!
will output
1
a: frog
Copied!

Print Document Index with matches

Given a sample.yml file of:
1
a: cat
2
---
3
a: frog
Copied!
then
1
yq '.a | ({"match": ., "doc": document_index})' sample.yml
Copied!
will output
1
match: cat
2
doc: 0
3
match: frog
4
doc: 1
Copied!