Nushell
Get Nu!
Getting Started
  • The Nushell Book
  • Command Reference
  • Cookbook
  • Language Reference Guide
  • Contributing Guide
Blog
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
  • 한국어
GitHub
Get Nu!
Getting Started
  • The Nushell Book
  • Command Reference
  • Cookbook
  • Language Reference Guide
  • Contributing Guide
Blog
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
  • 한국어
GitHub
  • Categories

    • Bits
    • Bytes
    • Chart
    • Conversions
    • Core
    • Database
    • Dataframe
    • Dataframe Or Lazyframe
    • Date
    • Debug
    • Default
    • Env
    • Experimental
    • Expression
    • Filesystem
    • Filters
    • Formats
    • Generators
    • Hash
    • History
    • Lazyframe
    • Math
    • Misc
    • Network
    • Path
    • Platform
    • Plugin
    • Prompt
    • Random
    • Removed
    • Shells
    • Strings
    • System
    • Viewers

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:

inputoutput
list<any>list<any>
stringany

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