yq/pkg/yqlib/doc/Path.md

59 lines
798 B
Markdown
Raw Normal View History

2020-11-22 02:16:54 +00:00
The path operator can be used to get the traversal paths of matching nodes in an expression. The path is returned as an array, which if traversed in order will lead to the matching node.
## Map path
2020-11-22 01:19:57 +00:00
Given a sample.yml file of:
```yaml
a:
b: cat
```
then
```bash
yq eval '.a.b | path' sample.yml
```
will output
```yaml
- a
- b
```
2020-11-22 02:16:54 +00:00
## Array path
2020-11-22 01:19:57 +00:00
Given a sample.yml file of:
```yaml
a:
- cat
- dog
```
then
```bash
yq eval '.a.[] | select(. == "dog") | path' sample.yml
```
will output
```yaml
- a
- 1
```
2020-11-22 02:16:54 +00:00
## Print path and value
2020-11-22 01:19:57 +00:00
Given a sample.yml file of:
```yaml
a:
- cat
- dog
- frog
```
then
```bash
yq eval '.a.[] | select(. == "*og") | [{"path":path, "value":.}]' sample.yml
```
will output
```yaml
- path:
- a
- 1
value: dog
- path:
- a
- 2
value: frog
```