Universal grep

Quickly grep through C/C++, Java, Python, JSON, XML and more using predefined and installed search patterns. Search files for Unicode text patterns, find source code matches, and search and display text and binary files recursively in large directory trees. Search options are fully compatible with the GNU grep and BSD grep tools.

What is ugrep?

Universal grep (or "uber grep") offers powerful pattern search options to selectively search source code files efficiently in large directory trees. You can use predefined and installed patterns with option -f, for example to display C++ function definitions -f c++/function_defs found in source code file ugrep.cpp:

function defs

ugrep produces hexdumps for binary file pattern matches, including context matching when specified with options -A, -B, and -C. For example to search Hello in Java class file Hello.class:


ugrep offers command-line options compatible with the popular GNU grep utility, extended with Unicode pattern matching and negative pattern matching to filter out unwanted matches to produce more precise search results.

ugrep uses RE/flex for high-performance regex matching, which is 100 times faster than the GNU C POSIX.2 regex library used by the grep utility and 10 times faster than PCRE2 and RE2.

Best of all, ugrep is free open source and lives on GitHub!