find
for filters
Searches terms in the input.
Signature
> find {flags} ...rest
Flags
--regex, -r {string}
: regex to match with--ignore-case, -i
: case-insensitive regex mode; equivalent to (?i)--multiline, -m
: multi-line regex mode: ^ and $ match begin/end of line; equivalent to (?m)--dotall, -s
: dotall regex mode: allow a dot . to match newlines \n; equivalent to (?s)--columns, -c {list<string>}
: column names to be searched (with rest parameter, not regex yet)--invert, -v
: invert the match
Parameters
...rest
: Terms to search.
Input/output types:
input | output |
---|---|
list<any> | list<any> |
string | any |
Examples
Search for multiple terms in a command output
> ls | find toml md sh
Search and highlight text for a term in a string. Note that regular search is case insensitive
> 'Cargo.toml' | find cargo
Cargo.toml
Search a number or a file size in a list of numbers
> [1 5 3kb 4 3Mb] | find 5 3kb
╭───┬─────────╮
│ 0 │ 5 │
│ 1 │ 2.9 KiB │
╰───┴─────────╯
Search a char in a list of string
> [moe larry curly] | find l
╭───┬───────╮
│ 0 │ larry │
│ 1 │ curly │
╰───┴───────╯
Find using regex
> [abc bde arc abf] | find --regex "ab"
╭───┬─────╮
│ 0 │ abc │
│ 1 │ abf │
╰───┴─────╯
Find using regex case insensitive
> [aBc bde Arc abf] | find --regex "ab" -i
╭───┬─────╮
│ 0 │ aBc │
│ 1 │ abf │
╰───┴─────╯
Find value in records using regex
> [[version name]; ['0.1.0' nushell] ['0.1.1' fish] ['0.2.0' zsh]] | find --regex "nu"
╭───┬─────────┬─────────╮
│ # │ version │ name │
├───┼─────────┼─────────┤
│ 0 │ 0.1.0 │ nushell │
╰───┴─────────┴─────────╯
Find inverted values in records using regex
> [[version name]; ['0.1.0' nushell] ['0.1.1' fish] ['0.2.0' zsh]] | find --regex "nu" --invert
╭───┬─────────┬──────╮
│ # │ version │ name │
├───┼─────────┼──────┤
│ 0 │ 0.1.1 │ fish │
│ 1 │ 0.2.0 │ zsh │
╰───┴─────────┴──────╯
Find value in list using regex
> [["Larry", "Moe"], ["Victor", "Marina"]] | find --regex "rr"
╭───┬───────────────╮
│ 0 │ ╭───┬───────╮ │
│ │ │ 0 │ Larry │ │
│ │ │ 1 │ Moe │ │
│ │ ╰───┴───────╯ │
╰───┴───────────────╯
Find inverted values in records using regex
> [["Larry", "Moe"], ["Victor", "Marina"]] | find --regex "rr" --invert
╭───┬────────────────╮
│ 0 │ ╭───┬────────╮ │
│ │ │ 0 │ Victor │ │
│ │ │ 1 │ Marina │ │
│ │ ╰───┴────────╯ │
╰───┴────────────────╯
Remove ANSI sequences from result
> [[foo bar]; [abc 123] [def 456]] | find 123 | get bar | ansi strip
Find and highlight text in specific columns
> [[col1 col2 col3]; [moe larry curly] [larry curly moe]] | find moe --columns [col1]
╭───┬──────┬───────┬───────╮
│ # │ col1 │ col2 │ col3 │
├───┼──────┼───────┼───────┤
│ 0 │ moe │ larry │ curly │
╰───┴──────┴───────┴───────╯