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; when in regex mode, this is equivalent to (?i)--multiline, -m
: don't split multi-line strings into lists of lines. you should use this option when using the (?m) or (?s) flags in regex mode--dotall, -s
: dotall regex mode: allow a dot . to match newlines \n; equivalent to (?s)--columns, -c {list<string>}
: column names to be searched--no-highlight, -n
: no-highlight mode: find without marking with ansi code--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.
> 'Cargo.toml' | find Cargo
Cargo.toml
Search a number or a file size in a list of numbers
> [1 5 3kb 4 35 3Mb] | find 5 3kb
╭───┬────────╮
│ 0 │ 5 │
│ 1 │ 3.0 kB │
╰───┴────────╯
Search a char in a list of string
> [moe larry curly] | find l
╭───┬───────╮
│ 0 │ larry │
│ 1 │ curly │
╰───┴───────╯
Search using regex
> [abc odb arc abf] | find --regex "b."
╭───┬─────╮
│ 0 │ abc │
│ 1 │ abf │
╰───┴─────╯
Case insensitive search
> [aBc bde Arc abf] | find "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 --no-highlight 123
╭───┬─────┬─────╮
│ # │ foo │ bar │
├───┼─────┼─────┤
│ 0 │ abc │ 123 │
╰───┴─────┴─────╯
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 │
╰───┴──────┴───────┴───────╯
Find in a multi-line string
> "Violets are red\nAnd roses are blue\nWhen metamaterials\nAlter their hue" | find "ue"
╭───┬────────────────────╮
│ 0 │ And roses are blue │
│ 1 │ Alter their hue │
╰───┴────────────────────╯
Find in a multi-line string without splitting the input into a list of lines
> "Violets are red\nAnd roses are blue\nWhen metamaterials\nAlter their hue" | find --multiline "ue"
Violets are red
And roses are blue
When metamaterials
Alter their hue