mirror of
				https://github.com/taigrr/yq
				synced 2025-01-18 04:53:17 -08:00 
			
		
		
		
	Added another delete example
This commit is contained in:
		
							parent
							
								
									2743a7e058
								
							
						
					
					
						commit
						658006eb93
					
				| @ -95,3 +95,23 @@ will output | |||||||
| b: dog | b: dog | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
|  | ## Recursively delete matching keys | ||||||
|  | Given a sample.yml file of: | ||||||
|  | ```yaml | ||||||
|  | a: | ||||||
|  |   name: frog | ||||||
|  |   b: | ||||||
|  |     name: blog | ||||||
|  |     age: 12 | ||||||
|  | ``` | ||||||
|  | then | ||||||
|  | ```bash | ||||||
|  | yq eval 'del(.. | select(has("name")).name)' sample.yml | ||||||
|  | ``` | ||||||
|  | will output | ||||||
|  | ```yaml | ||||||
|  | a: | ||||||
|  |   b: | ||||||
|  |     age: 12 | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| This operator recursively matches all children nodes given of a particular element, including that node itself. This is most often used to apply a filter recursively against all matches. It can be used in either the  | This operator recursively matches (or globs) all children nodes given of a particular element, including that node itself. This is most often used to apply a filter recursively against all matches. It can be used in either the  | ||||||
| 
 | 
 | ||||||
| ## match values form `..` | ## match values form `..` | ||||||
| This will, like the `jq` equivalent, recursively match all _value_ nodes. Use it to find/manipulate particular values. | This will, like the `jq` equivalent, recursively match all _value_ nodes. Use it to find/manipulate particular values. | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| This operator recursively matches all children nodes given of a particular element, including that node itself. This is most often used to apply a filter recursively against all matches. It can be used in either the  | This operator recursively matches (or globs) all children nodes given of a particular element, including that node itself. This is most often used to apply a filter recursively against all matches. It can be used in either the  | ||||||
| 
 | 
 | ||||||
| ## match values form `..` | ## match values form `..` | ||||||
| This will, like the `jq` equivalent, recursively match all _value_ nodes. Use it to find/manipulate particular values. | This will, like the `jq` equivalent, recursively match all _value_ nodes. Use it to find/manipulate particular values. | ||||||
|  | |||||||
| @ -61,6 +61,14 @@ var deleteOperatorScenarios = []expressionScenario{ | |||||||
| 			"D0, P[], (doc)::{b: dog}\n", | 			"D0, P[], (doc)::{b: dog}\n", | ||||||
| 		}, | 		}, | ||||||
| 	}, | 	}, | ||||||
|  | 	{ | ||||||
|  | 		description: "Recursively delete matching keys", | ||||||
|  | 		document:    `{a: {name: frog, b: {name: blog, age: 12}}}`, | ||||||
|  | 		expression:  `del(.. | select(has("name")).name)`, | ||||||
|  | 		expected: []string{ | ||||||
|  | 			"D0, P[], (!!map)::{a: {b: {age: 12}}}\n", | ||||||
|  | 		}, | ||||||
|  | 	}, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func TestDeleteOperatorScenarios(t *testing.T) { | func TestDeleteOperatorScenarios(t *testing.T) { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user