W3cubDocs

/Nushell

each for filters

Run a closure on each row of the input list, creating a new list with the results.

Signature

> each {flags} (closure)

Flags

  • --keep-empty, -k: keep empty result cells

Parameters

  • closure: the closure to run

Input/output types:

input output
any any
list<any> list<any>
table list<any>

Examples

Multiplies elements in the list

> [123] |each {|e| 2*$e }
╭───┬───╮
02
14
26
╰───┴───╯

Produce a list of values in the record, converted to string

> {major:2, minor:1, patch:4} |values|each {|| into string }
╭───┬───╮
02
11
24
╰───┴───╯

Produce a list that has "two" for each 2 in the input

> [1232] |each {|e| if$e==2 { "two" } }
╭───┬─────╮
0two
1two
╰───┴─────╯

Iterate over each element, producing a list showing indexes of any 2s

> [123] |enumerate|each {|e| if$e.item==2 { $"found 2 at ($e.index)!"} }
╭───┬───────────────╮
0found2at1!
╰───┴───────────────╯

Iterate over each element, keeping null results

> [123] |each--keep-empty {|e| if$e==2 { "found 2!"} }
╭───┬──────────╮
0
1found2!
2
╰───┴──────────╯

Notes

Since tables are lists of records, passing a table into 'each' will iterate over each record, not necessarily each cell within it.

Avoid passing single records to this command. Since a record is a one-row structure, 'each' will only run once, behaving similar to 'do'. To iterate over a record's values, try converting it to a table with 'transpose' first.

Subcommands:

name type usage
each while Builtin Run a block on each row of the input list until a null is found, then create a new list with the results.

Copyright © 2019–2023 The Nushell Project DevelopersLicensed under the MIT License.
https://www.nushell.sh/commands/docs/each.html