ack from betterthangrep.com

Miscellaneous tools
Post Reply
Message
Author
mcewanw
Posts: 3169
Joined: Thu 16 Aug 2007, 10:48
Contact:

ack from betterthangrep.com

#1 Post by mcewanw »

dotpet of ack

Version: 1.94

May run on most Puppy's. Doesn't need devx sfs loaded.

Its a simple Perl script which just uses core perl and hence runs on standard Puppy (I tested it on Wary 5). Way easier to use than grep most of the time. A simple pattern search can often be used instead of a complex piped combination of grep, find, sed and/or awk.

Turned off colour by specifying --nocolour in the ~/.ackrc file because otherwise ack complains it can't open ANSI color Terminal.

Note that

Code: Select all

ack --help
doesn't work but you can read the help at the ack website homepage, or simply open the /bin/ack perl script in any text editor and the usage help is near the top.

From the http://betterthangrep.com/ website:

Top 10 reasons to use ack instead of grep.
1. It's blazingly fast because it only searches the stuff you want searched.
2. ack is pure Perl, so it runs on Windows just fine.
3. The standalone version uses no non-standard modules, so you can put it in your ~/bin without fear.
4. Searches recursively through directories by default, while ignoring .svn, CVS and other VCS directories.
* Which would you rather type?
$ grep pattern $(find . -type f | grep -v '\.svn')
$ ack pattern
5. 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
6. Ignoring .svn directories means that ack is faster than grep for searching through trees.
7. 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 pattern
Note that ack's --perl also checks the shebang lines of files without suffixes, which the find command will not.
8. 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
9. Color highlighting of search results.
10. Uses real Perl regular expressions, not a GNU subset.
11. Allows you to specify output using Perl's special variables
* Example: ack '(Mr|Mr?s)\. (Smith|Jones)' --output='$&'
12. 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.
13. Command name is 25% fewer characters to type! Save days of free-time! Heck, it's 50% shorter compared to grep -r.
Attachments
ack-1.94.pet
(24.38 KiB) Downloaded 520 times
github mcewanw

User avatar
Geoffrey
Posts: 2355
Joined: Sun 30 May 2010, 08:42
Location: Queensland

#2 Post by Geoffrey »

Cool, another weapon for the arsenal, by the way, " ack --help " works for me.

Post Reply