mirror of
https://github.com/mikefarah/yq.git
synced 2024-12-19 20:19:04 +00:00
1.8 KiB
1.8 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
Check node is a key
Given a sample.yml file of:
a:
b:
- cat
c: frog
then
yq '[... | { "p": path | join("."), "isKey": is_key, "tag": tag }]' sample.yml
will output
- p: ""
isKey: false
tag: '!!map'
- p: a
isKey: true
tag: '!!str'
- p: a
isKey: false
tag: '!!map'
- p: a.b
isKey: true
tag: '!!str'
- p: a.b
isKey: false
tag: '!!seq'
- p: a.b.0
isKey: false
tag: '!!str'
- p: a.c
isKey: true
tag: '!!str'
- p: a.c
isKey: false
tag: '!!str'