Yaml files can be created using the 'new' command. This works in the same way as the write command, but you don't pass in an existing Yaml file. Currently this does not support creating multiple documents in a single yaml file.
yq n <path> <new value>
Creating a simple yaml file¶
yq n b.c cat
b: c: cat
Creating using a create script¶
Create scripts follow the same format as the update scripts.
Given a script create_instructions.yaml of:
b.c: 3 b.e.name: Howdy Partner
yq n -s create_instructions.yaml
b: c: 3 e: - name: Howdy Partner
You can also pipe the instructions in:
cat create_instructions.yaml | yq n -s -
Keys with dots¶
When specifying a key that has a dot use key lookup indicator.
b: foo.bar: 7
yaml r sample.yaml 'b[foo.bar]'
yaml w sample.yaml 'b[foo.bar]' 9
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.