diff --git a/pkg/yqlib/doc/operators/filter.md b/pkg/yqlib/doc/operators/filter.md index 8b137891..d35269aa 100644 --- a/pkg/yqlib/doc/operators/filter.md +++ b/pkg/yqlib/doc/operators/filter.md @@ -1 +1,18 @@ +## Filter array +Given a sample.yml file of: +```yaml +- 1 +- 2 +- 3 +``` +then +```bash +yq 'filter(. < 3)' sample.yml +``` +will output +```yaml +- 1 +- 2 +``` + diff --git a/pkg/yqlib/operator_filter_test.go b/pkg/yqlib/operator_filter_test.go index 00b0d2f0..d5cd3af2 100644 --- a/pkg/yqlib/operator_filter_test.go +++ b/pkg/yqlib/operator_filter_test.go @@ -6,43 +6,39 @@ import ( var filterOperatorScenarios = []expressionScenario{ { - skipDoc: true, + description: "Filter array", document: `[1,2,3]`, - document2: `[1, 2]`, expression: `filter(. < 3)`, expected: []string{ - "D0, P[], (!!seq)::[2, 3, 4]\n", - "D0, P[], (!!seq)::[1, 2]\n", + "D0, P[], (!!seq)::- 1\n", + "D0, P[], (!!seq)::- 2\n", }, }, - /* { - description: "Map array", + skipDoc: true, document: `[1,2,3]`, - expression: `map(. + 1)`, + expression: `filter(. > 1)`, expected: []string{ - "D0, P[], (!!seq)::[2, 3, 4]\n", + "D0, P[], (!!seq)::- 2\n", + "D0, P[], (!!seq)::- 3\n", }, }, { - skipDoc: true, - document: `{a: 1, b: 2, c: 3}`, - document2: `{x: 10, y: 20, z: 30}`, - expression: `map_values(. + 1)`, + skipDoc: true, + description: "Filter array to empty", + document: `[1,2,3]`, + expression: `filter(. > 4)`, expected: []string{ - "D0, P[], (doc)::{a: 2, b: 3, c: 4}\n", - "D0, P[], (doc)::{x: 11, y: 21, z: 31}\n", }, }, { - description: "Map object values", - document: `{a: 1, b: 2, c: 3}`, - expression: `map_values(. + 1)`, + skipDoc: true, + description: "Filter empty array", + document: `[]`, + expression: `filter(. > 1)`, expected: []string{ - "D0, P[], (doc)::{a: 2, b: 3, c: 4}\n", }, }, - */ } func TestFilterOperatorScenarios(t *testing.T) {