y
y
yq
Search…
File Operators
File operators are most often used with merge when needing to merge specific files together. Note that when doing this, you will need to use eval-all to ensure all yaml documents are loaded into memory before performing the merge (as opposed to eval which runs the expression once per document).
Note that the fileIndex operator has a short alias of fi.

Merging files

Note the use of eval-all to ensure all documents are loaded into memory.
1
yq eval-all 'select(fi == 0) * select(filename == "file2.yaml")' file1.yaml file2.yaml
Copied!
Note that versions prior to 4.18 require the 'eval/e' command to be specified.
yq e <exp> <file>

Get filename

Given a sample.yml file of:
1
a: cat
Copied!
then
1
yq 'filename' sample.yml
Copied!
will output
1
sample.yml
Copied!

Get file index

Given a sample.yml file of:
1
a: cat
Copied!
then
1
yq 'file_index' sample.yml
Copied!
will output
1
0
Copied!

Get file indices of multiple documents

Given a sample.yml file of:
1
a: cat
Copied!
And another sample another.yml file of:
1
a: cat
Copied!
then
1
yq eval-all 'file_index' sample.yml another.yml
Copied!
will output
1
0
2
---
3
1
Copied!

Get file index alias

Given a sample.yml file of:
1
a: cat
Copied!
then
1
yq 'fi' sample.yml
Copied!
will output
1
0
Copied!
Last modified 4mo ago