Create

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.

yq n <path> <new value>

Creating a simple yaml file

yq n b.c cat

will output:

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[0].name: Howdy Partner

then

yq n -s create_instructions.yaml

will output:

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.