filter

For filters.

Filter values based on a predicate closure.

Command Type

built-in

Signature

> filter {flags} (closure)

Parameters

  • closure: The closure to use as a filter predicate.

Input/output types:

input output
list<any> list<any>
range list<any>

Examples

Filter items of a list according to a condition.

> [1 2] | filter {|x| $x > 1}
╭───┬───╮
│ 0 │ 2 │
╰───┴───╯

Filter rows of a table according to a condition.

> [{a: 1} {a: 2}] | filter {|x| $x.a > 1}
╭───┬───╮
│ # │ a │
├───┼───┤
│ 0 │ 2 │
╰───┴───╯

Filter rows of a table according to a stored condition.

> let cond = {|x| $x.a > 1}; [{a: 1} {a: 2}] | filter $cond
╭───┬───╮
│ # │ a │
├───┼───┤
│ 0 │ 2 │
╰───┴───╯

Filter items of a range according to a condition.

> 9..13 | filter {|el| $el mod 2 != 0}
╭───┬────╮
│ 0 │  9 │
│ 1 │ 11 │
│ 2 │ 13 │
╰───┴────╯

List all numbers above 3, using an existing closure condition.

> let a = {$in > 3}; [1, 2, 5, 6] | filter $a

Notes

This command works similar to ‘where’ but can only use a closure as a predicate. The “row condition” syntax is not supported.

Ported from nushell/nushell.github.io. Copyright (c) 2021 Nushell Project. MIT License.