2022-03-09 03:38:02 +00:00
|
|
|
# Pick
|
|
|
|
|
|
|
|
Filter a map by the specified list of keys. Map is returned with the key in the order of the pick list.
|
|
|
|
|
2022-03-10 02:50:53 +00:00
|
|
|
Similarly, filter an array by the specified list of indices.
|
2022-03-09 03:38:02 +00:00
|
|
|
|
|
|
|
## Pick keys from map
|
|
|
|
Note that the order of the keys matches the pick order and non existent keys are skipped.
|
|
|
|
|
|
|
|
Given a sample.yml file of:
|
|
|
|
```yaml
|
|
|
|
myMap:
|
|
|
|
cat: meow
|
|
|
|
dog: bark
|
|
|
|
thing: hamster
|
2023-09-26 04:43:08 +00:00
|
|
|
hamster: squeak
|
2022-03-09 03:38:02 +00:00
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
|
|
|
yq '.myMap |= pick(["hamster", "cat", "goat"])' sample.yml
|
|
|
|
```
|
|
|
|
will output
|
|
|
|
```yaml
|
|
|
|
myMap:
|
2023-09-26 04:43:08 +00:00
|
|
|
hamster: squeak
|
2022-03-09 03:38:02 +00:00
|
|
|
cat: meow
|
|
|
|
```
|
|
|
|
|
2024-09-06 02:32:28 +00:00
|
|
|
## Pick keys from map, included all the keys
|
|
|
|
We create a map of the picked keys plus all the current keys, and run that through unique
|
|
|
|
|
|
|
|
Given a sample.yml file of:
|
|
|
|
```yaml
|
|
|
|
myMap:
|
|
|
|
cat: meow
|
|
|
|
dog: bark
|
|
|
|
thing: hamster
|
|
|
|
hamster: squeak
|
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
|
|
|
yq '.myMap |= pick( (["thing"] + keys) | unique)' sample.yml
|
|
|
|
```
|
|
|
|
will output
|
|
|
|
```yaml
|
|
|
|
myMap:
|
|
|
|
thing: hamster
|
|
|
|
cat: meow
|
|
|
|
dog: bark
|
|
|
|
hamster: squeak
|
|
|
|
```
|
|
|
|
|
2022-03-09 03:38:02 +00:00
|
|
|
## Pick indices from array
|
2023-03-16 02:39:36 +00:00
|
|
|
Note that the order of the indices matches the pick order and non existent indices are skipped.
|
2022-03-09 03:38:02 +00:00
|
|
|
|
|
|
|
Given a sample.yml file of:
|
|
|
|
```yaml
|
|
|
|
- cat
|
|
|
|
- leopard
|
|
|
|
- lion
|
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
|
|
|
yq 'pick([2, 0, 734, -5])' sample.yml
|
|
|
|
```
|
|
|
|
will output
|
|
|
|
```yaml
|
|
|
|
- lion
|
|
|
|
- cat
|
|
|
|
```
|
|
|
|
|