yq/operators/parent.md

90 lines
1.0 KiB
Markdown
Raw Normal View History

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
```