mirror of
				https://github.com/taigrr/yq
				synced 2025-01-18 04:53:17 -08:00 
			
		
		
		
	Added File operators
This commit is contained in:
		
							parent
							
								
									d38caf6bc2
								
							
						
					
					
						commit
						e451119014
					
				| @ -1,13 +1,13 @@ | |||||||
| The file operator is used to filter based on filename. This is most often used with merge when needing to merge specific files together. | File operators are most often used with merge when needing to merge specific files together. Note that when doing this, you will need to use `eval-all` to ensure all yaml documents are loaded into memory before performing the merge (as opposed to `eval` which runs the expression once per document). | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| yq eval 'filename == "file1.yaml" * fileIndex == 0' file1.yaml file2.yaml | yq eval-all 'select(fileIndex == 0) * select(filename == "file2.yaml")' file1.yaml file2.yaml | ||||||
| ``` | ``` | ||||||
| ## Examples | ## Examples | ||||||
| ### Get filename | ### Get filename | ||||||
| Given a sample.yml file of: | Given a sample.yml file of: | ||||||
| ```yaml | ```yaml | ||||||
| '': null | a: cat | ||||||
| ``` | ``` | ||||||
| then | then | ||||||
| ```bash | ```bash | ||||||
| @ -21,7 +21,7 @@ sample.yaml | |||||||
| ### Get file index | ### Get file index | ||||||
| Given a sample.yml file of: | Given a sample.yml file of: | ||||||
| ```yaml | ```yaml | ||||||
| '': null | a: cat | ||||||
| ``` | ``` | ||||||
| then | then | ||||||
| ```bash | ```bash | ||||||
|  | |||||||
| @ -1,5 +1,5 @@ | |||||||
| The file operator is used to filter based on filename. This is most often used with merge when needing to merge specific files together. | File operators are most often used with merge when needing to merge specific files together. Note that when doing this, you will need to use `eval-all` to ensure all yaml documents are loaded into memory before performing the merge (as opposed to `eval` which runs the expression once per document). | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| yq eval 'filename == "file1.yaml" * fileIndex == 0' file1.yaml file2.yaml | yq eval-all 'select(fileIndex == 0) * select(filename == "file2.yaml")' file1.yaml file2.yaml | ||||||
| ``` | ``` | ||||||
| @ -18,8 +18,6 @@ type OperationType struct { | |||||||
| 
 | 
 | ||||||
| // operators TODO: | // operators TODO: | ||||||
| // - get path operator (like doc index) | // - get path operator (like doc index) | ||||||
| // - get file index op (like doc index) |  | ||||||
| // - get file name op (like doc index) |  | ||||||
| // - write in place | // - write in place | ||||||
| // - mergeAppend (merges and appends arrays) | // - mergeAppend (merges and appends arrays) | ||||||
| // - mergeEmpty (sets only if the document is empty, do I do that now?) | // - mergeEmpty (sets only if the document is empty, do I do that now?) | ||||||
|  | |||||||
| @ -7,7 +7,7 @@ import ( | |||||||
| var fileOperatorScenarios = []expressionScenario{ | var fileOperatorScenarios = []expressionScenario{ | ||||||
| 	{ | 	{ | ||||||
| 		description: "Get filename", | 		description: "Get filename", | ||||||
| 		document:    `{}`, | 		document:    `{a: cat}`, | ||||||
| 		expression:  `filename`, | 		expression:  `filename`, | ||||||
| 		expected: []string{ | 		expected: []string{ | ||||||
| 			"D0, P[], (!!str)::sample.yml\n", | 			"D0, P[], (!!str)::sample.yml\n", | ||||||
| @ -15,7 +15,7 @@ var fileOperatorScenarios = []expressionScenario{ | |||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		description: "Get file index", | 		description: "Get file index", | ||||||
| 		document:    `{}`, | 		document:    `{a: cat}`, | ||||||
| 		expression:  `fileIndex`, | 		expression:  `fileIndex`, | ||||||
| 		expected: []string{ | 		expected: []string{ | ||||||
| 			"D0, P[], (!!int)::0\n", | 			"D0, P[], (!!int)::0\n", | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user