Write
To Stdout¶
Given a sample.yaml file of:
then
will output:
From STDIN¶
Adding new fields¶
Any missing fields in the path will be created on the fly.
Given a sample.yaml file of:
then
will output:
Splat¶
Given a sample.yaml file of:
then
will output:
Prefix Splat¶
Given a sample.yaml file of:
then
will output:
Array Splat¶
Given a sample.yaml file of:
then
will output:
Appending value to an array field¶
Given a sample.yaml file of:
then
will output:
Note that the path is in quotes to avoid the square brackets being interpreted by your shell.
Multiple Documents - update a single document¶
Given a sample.yaml file of:
then
will output:
Multiple Documents - update all documents¶
Given a sample.yaml file of:
then
will output:
Note that '*' is in quotes to avoid being interpreted by your shell.
Updating files in-place¶
Given a sample.yaml file of:
then
will update the sample.yaml file so that the value of 'c' is cat.
Updating multiple values with a script¶
Given a sample.yaml file of:
and a script update_instructions.yaml of:
then
will output:
And, of course, you can pipe the instructions in using '-':
Values starting with a hyphen (or dash)¶
The flag terminator needs to be used to stop the app from attempting to parse the subsequent arguments as flags:
will output
Keys with dots¶
When specifying a key that has a dot use key lookup indicator.
Any valid yaml key can be specified as part of a key lookup.
Note that the path is in quotes to avoid the square brackets being interpreted by your shell.
Keys (and values) with leading dashes¶
If a key or value has leading dashes, yq won't know that you are passing a value as opposed to a flag (and you will get a 'bad flag syntax' error).
To fix that, you will need to tell it to stop processing flags by adding '--' after the last flag like so:
Will result in
` --key: --value
Last updated