ack 3 is now in beta

ack 2.999_03 has been released to beta. It is feature complete,
but we still will be working on speed improvements. Compare
ack's features to other grep-like programs in our handy
feature comparison chart.

What's new in ack 3?

New --proximate option groups matches near each other

A new option --proximate=N groups together lines of
output that are within N lines of each other in the file. This is
useful when looking for matches that are related to each other.

For example, these results:

15: First match
18: Second match
19: Third match
37: Fourth match

would look like this with --proximate=1.

15: First match
18: Second match
19: Third match
37: Fourth match

Improved and incompatible -w option

The -w option, which tells ack to only find whole-word
matches, did not always work if your pattern began or ended with
puncutation. ack would make guesses as to what your intent was,
but it was not well-defined. Now, ack disallows regexes that
begin or end with non-word characters.

This means that if you use ack -w foo:, the new ack
will not allow it, whereas ack 2.x would.

Added -S as a synonym for --smart-case

For those without --smart-case always on, the -S
will be easier for when you do want to use it.

Smart-case matching makes ack do a case-insensitive search unless
the pattern being matched has a capital letter in it.

Added -I to force case-sensitivity

If you use --smart-case in your .ackrc, you can use
-I to force case-sensitivity instead of having to use
--no-smart-case (which still works).

Significant speed improvements

Run times for ack 3 compared to ack 2.22 are 30-40% faster
because of removal of unused infrastructure for plugins.