ack is a tool like grep, aimed at programmers with large trees of heterogeneous source code.
ack is written purely in Perl, and takes advantage of the power of Perl's regular expressions.
* Searches recursively through directories by default, while ignoring .svn, CVS and other VCS directories.
* ack ignores most of the crap you don't want to search
* Lets you specify file types to search, as in --perl or --nohtml.
* Color highlighting of search results.
* Uses real Perl regular expressions, not a GNU subset.
* ack is pure Perl, so consistent across all platforms. It even comes as a single standalone program with no module dependencies.