5 releases

0.1.4 Jun 3, 2024
0.1.3 Jan 22, 2024
0.1.2 Jan 11, 2024
0.1.1 Jan 4, 2024
0.1.0 Jan 2, 2024

#135 in Text processing

Download history 1/week @ 2024-03-10 14/week @ 2024-03-31 8/week @ 2024-04-14 1/week @ 2024-04-21 149/week @ 2024-06-02 11/week @ 2024-06-09 1/week @ 2024-06-16

161 downloads per month


2.5K SLoC


treegrep is a frontend for existing pattern matchers or a standalone pattern matcher which presents results in a tree format

tests release


Currently Supported Backends

crates.io | GitHub | AUR | NetBSD

To Install


cargo install treegrep


pkgin install treegrep


Download from releases


git clone https://github.com/4imothy/treegrep
cd treegrep
cargo build --release

--help Output

treegrep 0.1.4
by Timothy Cronin

A pattern matcher frontend or backend which displays results in a tree

tgrep [OPTIONS] [positional regexp] [positional target]

  [positional regexp]  specify the regex expression
  [positional target]  specify the search target. If none provided, search the current directory.

  -e, --regexp <>      specify the regex expression
  -t, --target <>      specify the search target. If none provided, search the current directory.
  -c, --count          display number of files matched in directory and number of lines matched in a file if present
  -., --hidden         search hidden files
  -n, --line-number    show line number of match if present
  -m, --menu           open results in a menu to be edited with $EDITOR
                       navigate through the menu using the following commands:
                        - move up/down: k/j, p/n, up arrow/down arrow
                        - move up/down with a bigger jump: K/J, P/N
                        - move up/down paths: {/}, [/]
                        - move to the start/end: g/G, </>, home/end
                        - move up/down a page: b/f, pageup/pagedown
                        - quit: q, ctrl + c
  -f, --files          show the paths that have matches
      --links          show linked paths for symbolic links
      --trim           trim whitespace at the beginning of lines
      --pcre2          enable PCRE2 if the searcher supports it
      --no-ignore      don't use ignore files
      --no-color       don't use colors if present
      --max-depth <>   the max depth to search
      --threads <>     set the appropriate number of threads to use
      --max-length <>  set the max length for a matched line
  -s, --searcher <>    executable to do the searching [possible values: rg, tgrep]
  -l, --tree           display the files that would be search in tree format
      --glob <>        rules match .gitignore globs, but ! has inverted meaning, overrides other ignore logic
  -h, --help           Print help
  -V, --version        Print version

Any of the above can be set using the TREEGREP_DEFAULT_OPTS environment variable


~184K SLoC