mirror of
				https://github.com/taigrr/yq
				synced 2025-01-18 04:53:17 -08: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
 | |
| ``` |