Improved set path example

This commit is contained in:
Mike Farah 2022-11-10 10:22:08 +11:00
parent 22f376bbfd
commit fdad478684
2 changed files with 5 additions and 4 deletions

View File

@ -123,7 +123,7 @@ a:
``` ```
## Set path to extract prune deep paths ## Set path to extract prune deep paths
Like pick but recursive. Like pick but recursive. This uses `ireduce` to deeply set the selected paths into an empty object,
Given a sample.yml file of: Given a sample.yml file of:
```yaml ```yaml
@ -137,7 +137,8 @@ parentC:
``` ```
then then
```bash ```bash
yq '(.parentB.child2, .parentC.child1) as $i ireduce({}; setpath($i | path; $i))' sample.yml yq '(.parentB.child2, .parentC.child1) as $i
ireduce({}; setpath($i | path; $i))' sample.yml
``` ```
will output will output
```yaml ```yaml

View File

@ -90,9 +90,9 @@ var pathOperatorScenarios = []expressionScenario{
}, },
{ {
description: "Set path to extract prune deep paths", description: "Set path to extract prune deep paths",
subdescription: "Like pick but recursive.", subdescription: "Like pick but recursive. This uses `ireduce` to deeply set the selected paths into an empty object,",
document: documentToPrune, document: documentToPrune,
expression: `(.parentB.child2, .parentC.child1) as $i ireduce({}; setpath($i | path; $i))`, expression: "(.parentB.child2, .parentC.child1) as $i\n ireduce({}; setpath($i | path; $i))",
expected: []string{ expected: []string{
"D0, P[], (!!map)::parentB:\n child2: i am child2\nparentC:\n child1: me child1\n", "D0, P[], (!!map)::parentB:\n child2: i am child2\nparentC:\n child1: me child1\n",
}, },