yq/pkg/yqlib/doc/operators/document-index.md

1.2 KiB

Document Index

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

{% hint style="warning" %} Note that versions prior to 4.18 require the 'eval/e' command to be specified.

yq e <exp> <file> {% endhint %}

Retrieve a document index

Given a sample.yml file of:

a: cat
---
a: frog

then

yq '.a | document_index' sample.yml

will output

0
---
1

Retrieve a document index, shorthand

Given a sample.yml file of:

a: cat
---
a: frog

then

yq '.a | di' sample.yml

will output

0
---
1

Filter by document index

Given a sample.yml file of:

a: cat
---
a: frog

then

yq 'select(document_index == 1)' sample.yml

will output

a: frog

Filter by document index shorthand

Given a sample.yml file of:

a: cat
---
a: frog

then

yq '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 '.a | ({"match": ., "doc": document_index})' sample.yml

will output

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