mirror of
https://github.com/mikefarah/yq.git
synced 2024-12-19 20:19:04 +00:00
1.7 KiB
1.7 KiB
Load
The load
/strload
operator allows you to load in content from another file referenced in your yaml document.
Note that you can use string operators like +
and sub
to modify the value in the yaml file to a path that exists in your system.
Use strload
to load text based content as a string block, and load
to interpret the file as yaml.
Lets say there is a file ../../examples/thing.yml
:
a: apple is included
b: cool
Simple example
Given a sample.yml file of:
myFile: ../../examples/thing.yml
then
yq eval 'load(.myFile)' sample.yml
will output
a: apple is included
b: cool.
Replace node with referenced file
Note that you can modify the filename in the load operator if needed.
Given a sample.yml file of:
something:
file: thing.yml
then
yq eval '.something |= load("../../examples/" + .file)' sample.yml
will output
something:
a: apple is included
b: cool.
Replace all nodes with referenced file
Recursively match all the nodes (..
) and then filter the ones that have a 'file' attribute.
Given a sample.yml file of:
something:
file: thing.yml
over:
here:
- file: thing.yml
then
yq eval '(.. | select(has("file"))) |= load("../../examples/" + .file)' sample.yml
will output
something:
a: apple is included
b: cool.
over:
here:
- a: apple is included
b: cool.
Replace node with referenced file as string
This will work for any text based file
Given a sample.yml file of:
something:
file: thing.yml
then
yq eval '.something |= strload("../../examples/" + .file)' sample.yml
will output
something: |-
a: apple is included
b: cool.