Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Looking at the jq github repo led me to also find ag, an ack-grep replacement. Both are in my distro's repositories.

https://github.com/stedolan/jq

https://github.com/ggreer/the_silver_searcher

"The command name is 33% shorter than ack!"



Now check out ripgrep (command `rg`) https://github.com/BurntSushi/ripgrep, the ag/ack killer ;).


I like ag, but unless I'm missing something, ack has this killer flag which ag lacks:

    --output=expr
       Output the evaluation of expr for each line (turns off text
       highlighting) If PATTERN matches more than once then a line is
       output for each non-overlapping match.  For more information please
       see the section "Examples of --output".

Basically, it allows you to use captured groups in the output:

      cat file | ag '(\w+) (\d+)' --output '$1 is $2 years old'


On the other hand, ag allows multiline matching. So I end up using ag and ack together frequently.


    sed -rn 's/([a-zA-Z]+) ([0-9]+)/\1 is \2 years old/p' file


sed doesn't support the same PCRE regex ack or ag


No, but the `-r` option makes it use extended regex[1]. Here's some PCRE:

    cat file | perl -ne 'print if s/(\w+) (\d+)/\1 is \2 years old/'
My only point is sometimes old school standard tools are plenty.

1: https://www.gnu.org/software/sed/manual/sed.html#Extended-re...


Right...but there's a point in having a tool that does PCRE, and all the things useful in grep, in one command, rather than kicking out to Perl.


Agreed, it's nice to consolidate disparate functionality into a single invocation.

But when I saw mVChr's sed line, and then again the perl line, I was reminded "Oh, right, old school." And I wondered for the Nth time how much of old school has been unknowingly reinvented, and how many times.

Nevertheless, I like the new(er) tools in this thread too.


ripgrep has that with -r/--replace.


Skip ag and go straight to rg (ripgrep).




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: