Document Index

Use the documentIndex operator (or the di shorthand) to select nodes of a particular document.

Retrieve a document index

Given a sample.yml file of:

a: cat
---
a: frog

then

yq eval '.a | documentIndex' sample.yml

will output

0
---
1

Retrieve a document index, shorthand

Given a sample.yml file of:

a: cat
---
a: frog

then

yq eval '.a | di' sample.yml

will output

0
---
1

Filter by document index

Given a sample.yml file of:

a: cat
---
a: frog

then

yq eval 'select(documentIndex == 1)' sample.yml

will output

a: frog

Filter by document index shorthand

Given a sample.yml file of:

a: cat
---
a: frog

then

yq eval 'select(di == 1)' sample.yml

will output

a: frog

Print Document Index with matches

Given a sample.yml file of:

a: cat
---
a: frog

then

yq eval '.a | ({"match": ., "doc": documentIndex})' sample.yml

will output

match: cat
doc: 0
match: frog
doc: 1