ack

ack is a tool like grep, optimized for programmers. Designed for programmers with large heterogeneous trees of source code, ack is written purely in portable Perl and takes advantage of the power of Perl's regular expressions. It searches entire trees by default while ignoring Subversion, Git, and other VCS directories and other files which aren't your source code. It uses Perl regular expressions to find just what you want.