28
11
2007
Mac ::: Ack a grep replacement
Posted by: fidel in mac, tags: ack, developer tools, grep, mac, perlAbout ack:
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.
Found that via DaringFireball.net
Quote from the project page:
Top 10 reasons to use ack instead of grep.
- ack is pure Perl, so it runs on Windows just fine.
- The standalone version uses no non-standard modules, so you can put it in your ~/bin without fear.
- Searches recursively through directories by default, while ignoring .svn, CVS and other VCS directories.
- Which would you rather type?
$ grep pattern $(find . | grep -v .svn)
$ ack pattern- ack ignores most of the crap you don’t want to search
- VCS directories
- blib, the Perl build directory
- backup files like foo~ and #foo#
- binary files, core dumps, etc
- Ignoring .svn directories means that ack is faster than grep for searching through trees.
- Lets you specify file types to search, as in –perl or –nohtml.
- Which would you rather type?
$ grep pattern $(find . -name ‘*.pl’ -or -name ‘*.pm’ -or -name ‘*.pod’ | grep -v .svn)
$ ack –perl patternNote that ack’s –perl also checks the shebang lines of files without suffixes, which the find command will not.
- File-filtering capabilities usable without searching with ack -f. This lets you create lists of files of a given type.
$ ack -f –perl > all-perl-files- Color highlighting of search results.
- Uses real Perl regular expressions, not a GNU subset.
- Allows you to specify output using Perl’s special variables
- Example: ack ‘(Mr|Mr?s)\. (Smith|Jones)’ –output=’$&’
- Many command-line switches are the same as in GNU grep:
-w does word-only searching
-c shows counts per file of matches
-l gives the filename instead of matching lines
etc.- Command name is 25% fewer characters to type! Save days of free-time! Heck, it’s 50% shorter compared to grep -r.
Similar Posts:













Entries (RSS)
[...] Check it out! While looking through the blogosphere we stumbled on an interesting post today.Here’s a quick excerptAbout ack: 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. Found that via DaringFireball.net. [...]