mirror of
https://github.com/mikefarah/yq.git
synced 2024-12-19 20:19:04 +00:00
155 lines
1.6 KiB
Markdown
155 lines
1.6 KiB
Markdown
# Keys
|
|
|
|
Use the `keys` operator to return map keys or array indices.
|
|
|
|
## Map keys
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
dog: woof
|
|
cat: meow
|
|
```
|
|
then
|
|
```bash
|
|
yq 'keys' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
- dog
|
|
- cat
|
|
```
|
|
|
|
## Array keys
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
- apple
|
|
- banana
|
|
```
|
|
then
|
|
```bash
|
|
yq 'keys' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
- 0
|
|
- 1
|
|
```
|
|
|
|
## Retrieve array key
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
- 1
|
|
- 2
|
|
- 3
|
|
```
|
|
then
|
|
```bash
|
|
yq '.[1] | key' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
1
|
|
```
|
|
|
|
## Retrieve map key
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
a: thing
|
|
```
|
|
then
|
|
```bash
|
|
yq '.a | key' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
a
|
|
```
|
|
|
|
## No key
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
{}
|
|
```
|
|
then
|
|
```bash
|
|
yq 'key' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
```
|
|
|
|
## Update map key
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
a:
|
|
x: 3
|
|
y: 4
|
|
```
|
|
then
|
|
```bash
|
|
yq '(.a.x | key) = "meow"' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
a:
|
|
meow: 3
|
|
y: 4
|
|
```
|
|
|
|
## Get comment from map key
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
a:
|
|
# comment on key
|
|
x: 3
|
|
y: 4
|
|
```
|
|
then
|
|
```bash
|
|
yq '.a.x | key | headComment' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
comment on key
|
|
```
|
|
|
|
## Check node is a key
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
a:
|
|
b:
|
|
- cat
|
|
c: frog
|
|
```
|
|
then
|
|
```bash
|
|
yq '[... | { "p": path | join("."), "isKey": is_key, "tag": tag }]' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
- 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'
|
|
```
|
|
|