yq/operators/keys.md
2022-02-06 14:41:27 +11:00

1.3 KiB

Keys

Use the keys operator to return map keys or array indices.

{% hint style="warning" %} Note that versions prior to 4.18 require the 'eval/e' command to be specified.

yq e <exp> <file> {% endhint %}

Map keys

Given a sample.yml file of:

dog: woof
cat: meow

then

yq 'keys' sample.yml

will output

- dog
- cat

Array keys

Given a sample.yml file of:

- apple
- banana

then

yq 'keys' sample.yml

will output

- 0
- 1

Retrieve array key

Given a sample.yml file of:

- 1
- 2
- 3

then

yq '.[1] | key' sample.yml

will output

1

Retrieve map key

Given a sample.yml file of:

a: thing

then

yq '.a | key' sample.yml

will output

a

No key

Given a sample.yml file of:

{}

then

yq 'key' sample.yml

will output

Update map key

Given a sample.yml file of:

a:
  x: 3
  y: 4

then

yq '(.a.x | key) = "meow"' sample.yml

will output

a:
  meow: 3
  y: 4

Get comment from map key

Given a sample.yml file of:

a:
  # comment on key
  x: 3
  y: 4

then

yq '.a.x | key | headComment' sample.yml

will output

comment on key