2021-11-24 00:15:42 +00:00
|
|
|
# Parent
|
|
|
|
|
|
|
|
Parent simply returns the parent nodes of the matching nodes.
|
|
|
|
|
|
|
|
## Simple example
|
|
|
|
Given a sample.yml file of:
|
|
|
|
```yaml
|
|
|
|
a:
|
|
|
|
nested: cat
|
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
2022-01-28 01:45:43 +00:00
|
|
|
yq '.a.nested | parent' sample.yml
|
2021-11-24 00:15:42 +00:00
|
|
|
```
|
|
|
|
will output
|
|
|
|
```yaml
|
|
|
|
nested: cat
|
|
|
|
```
|
|
|
|
|
|
|
|
## Parent of nested matches
|
|
|
|
Given a sample.yml file of:
|
|
|
|
```yaml
|
|
|
|
a:
|
|
|
|
fruit: apple
|
|
|
|
name: bob
|
|
|
|
b:
|
|
|
|
fruit: banana
|
|
|
|
name: sam
|
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
2022-01-28 01:45:43 +00:00
|
|
|
yq '.. | select(. == "banana") | parent' sample.yml
|
2021-11-24 00:15:42 +00:00
|
|
|
```
|
|
|
|
will output
|
|
|
|
```yaml
|
|
|
|
fruit: banana
|
|
|
|
name: sam
|
|
|
|
```
|
|
|
|
|
2024-03-23 23:59:15 +00:00
|
|
|
## N-th parent
|
|
|
|
You can optionally supply the number of levels to go up for the parent, the default being 1.
|
|
|
|
|
|
|
|
Given a sample.yml file of:
|
|
|
|
```yaml
|
|
|
|
a:
|
|
|
|
b:
|
|
|
|
c: cat
|
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
|
|
|
yq '.a.b.c | parent(2)' sample.yml
|
|
|
|
```
|
|
|
|
will output
|
|
|
|
```yaml
|
|
|
|
b:
|
|
|
|
c: cat
|
|
|
|
```
|
|
|
|
|
|
|
|
## N-th parent - another level
|
|
|
|
Given a sample.yml file of:
|
|
|
|
```yaml
|
|
|
|
a:
|
|
|
|
b:
|
|
|
|
c: cat
|
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
|
|
|
yq '.a.b.c | parent(3)' sample.yml
|
|
|
|
```
|
|
|
|
will output
|
|
|
|
```yaml
|
|
|
|
a:
|
|
|
|
b:
|
|
|
|
c: cat
|
|
|
|
```
|
|
|
|
|
2021-11-24 00:15:42 +00:00
|
|
|
## No parent
|
|
|
|
Given a sample.yml file of:
|
|
|
|
```yaml
|
|
|
|
{}
|
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
2022-01-28 01:45:43 +00:00
|
|
|
yq 'parent' sample.yml
|
2021-11-24 00:15:42 +00:00
|
|
|
```
|
|
|
|
will output
|
|
|
|
```yaml
|
|
|
|
```
|
|
|
|
|