mirror of
https://github.com/mikefarah/yq.git
synced 2024-12-19 20:19:04 +00:00
74 lines
1.9 KiB
Plaintext
74 lines
1.9 KiB
Plaintext
|
|
Major release! Upgraded underlying yaml parser, re-written majority of yq. This has brought on a number of features that have been in demand for a while (see below).
|
|
|
|
This is in beta and needs some community feedback and testing :)
|
|
|
|
# New Features
|
|
- Keeps yaml comments and formatting, can specify yaml tags when updating. https://github.com/mikefarah/yq/issues/19, https://github.com/mikefarah/yq/issues/169, https://github.com/mikefarah/yq/issues/107, https://github.com/mikefarah/yq/issues/171, https://github.com/mikefarah/yq/issues/245, https://github.com/mikefarah/yq/issues/303,https://github.com/mikefarah/yq/issues/308,https://github.com/mikefarah/yq/issues/314
|
|
- Handles anchors! https://github.com/mikefarah/yq/issues/310, https://github.com/mikefarah/yq/issues/178
|
|
- Can print out matching paths and values when splatting https://github.com/mikefarah/yq/issues/20
|
|
- JSON output works for all commands! Yaml files with multiple documents are printed out as one JSON document per line.
|
|
- Deep splat (**) to match arbitrary paths
|
|
|
|
|
|
# Breaking changes
|
|
|
|
## Update scripts file format has changed to be more powerful.
|
|
Comments can be added, and delete commands have been introduced.
|
|
|
|
Before:
|
|
```yaml
|
|
b.e[+].name: Mike Farah
|
|
```
|
|
|
|
After:
|
|
```yaml
|
|
- command: update
|
|
path: b.e[+].thing
|
|
value:
|
|
#great
|
|
things: frog # wow!
|
|
- command: delete
|
|
path: b.d
|
|
```
|
|
|
|
https://github.com/mikefarah/yq/issues/305
|
|
|
|
## Reading and splatting, matching results are printed once per line.
|
|
e.g:
|
|
|
|
```json
|
|
parent:
|
|
childA:
|
|
no: matches here
|
|
childB:
|
|
there: matches
|
|
hi: no match
|
|
there2: also matches
|
|
```
|
|
|
|
```bash
|
|
yq r sample.yaml 'parent.*.there*'
|
|
```
|
|
|
|
old
|
|
```yaml
|
|
- null
|
|
- - matches
|
|
- also matches
|
|
```
|
|
|
|
new
|
|
```yaml
|
|
matches
|
|
also matches
|
|
```
|
|
|
|
and you can print the matching paths:
|
|
|
|
yq r --printMode pv sample.yaml 'parent.*.there*'
|
|
|
|
```yaml
|
|
parent.childB.there: matches
|
|
parent.childB.there2: also matches
|
|
``` |