mirror of
https://github.com/mikefarah/yq.git
synced 2024-11-13 22:38:04 +00: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…
Reference in New Issue
Block a user