The chart was created by Andy Lester, the creator of ack, who thinks that more open source projects should point to their "competing" projects because it's not really a competition: <a href="http://blog.petdance.com/2018/01/02/the-best-open-source-project-for-someone-might-not-be-yours-and-thats-ok/" rel="nofollow">http://blog.petdance.com/2018/01/02/the-best-open-source-pro...</a>
The table is misleading isn't it?
It seems to imply that rg can't work recursively,
but [1] states "..ripgrep defaults to recursive directory search...".
I understand that the table might mean that rg doesn't have a flag
to enable recursive search, but surely we care about features
more than flags...<p>[1] <a href="https://github.com/BurntSushi/ripgrep#why-should-i-use-ripgrep" rel="nofollow">https://github.com/BurntSushi/ripgrep#why-should-i-use-ripgr...</a>
Here to plug using `--passthru`/`--passthrough`: it will print all lines, but highlight matches. I often do things like this to watch an output log, but highlight all entries with the string PLUGH in them:<p><pre><code> tail -F output.log | ag --passthrough '.*PLUGH.*'</code></pre>
Seems pretty comprehensive. One confusing thing I found was these two:
"Don't respect ignore files (.gitignore, .ignore, etc)" vs "Skip rules found in VCS ignore files (.gitignore, .hgignore, etc)"<p>Aren't those the same thing? Shouldn't they be grouped for better comparison?
I’m stuck with rg right now because it’s the only ine which correctly handles gitignore files. Generally quite happy with it but I wish it could also use a more powerful regex engine for some less common cases.<p>Most annoying thing is that $ does not work with windows newlines.
Not exactly sure what it is, but I really like this presentation format.<p>Thank you, have been trying to motivate myself to switch to ack/ag for a while. This seems like it might be what I needed.
The one thing I wish more of these comparison tables had was licensing info, so for those like me who are curious:<p>1. GNU grep - GPLv3+<p>2. ack - Artistic License v2.0<p>3. ag (aka silver searcher) - Apache License 2.0<p>4. git-grep - GPlv2+/LGPLv2.1+<p>5. rg - MIT license<p>So with maybe the exception of rg, all are gpl compatible, that's great news.
A nice feature of ag is the ability to limit the search to a certain file type. E.g. to only search ruby files: <i>ag --ruby foo</i>.<p>To see a list of supported types and the matching file extensions: <i>ag --list-file-types</i>.<p>Just checked and rg does have something similar, but you need to specify the type as an argument to a flag: <i>rg --type ruby foo</i>.
This chart doesn't compare speed. Until rg, I didn't grep much because I generally search through a lot of files. rg cuts through them in no time.
Nice feature-level comparison.<p>Don't know how you'd pull it off in the current tabular format, but would be great to include some of the UX side of things: For example, I use rg almost exclusively because it has an easy-to remember syntax (`rg search-string` is a recursive search), attractively colored and well-organized output, and seems much faster compared to other tools in my use cases.
as a long time user of `find . -name "*.foo" -exec grep -Hin {} \;` moving to ack has been great! I love the syntax and the speed and the fact that it actually respects your ignore files. ripgrep is great too. ag on the other hand is recommended by everyone but doesn't seem to respect ignores or understand modern ignore syntax. give it a pass.<p><a href="https://github.com/ggreer/the_silver_searcher/issues/385" rel="nofollow">https://github.com/ggreer/the_silver_searcher/issues/385</a><p>its been over 4 years... its had its chance.
Seems everybody here has switched to rg but I haven't because it's not available in Debian repos (yet) unlike ack/ag. So, do such folks use Arch or just download a pre-built binary ? How about updating rg when a new version is out ?
rg for the win. It's not some huge improvement, but it's more of a feeling that things just work by default (similar to what I get from tmux vs screen).
Any modern tools like this?<p>sary - a suffix array library and tools
<a href="http://sary.sourceforge.net/" rel="nofollow">http://sary.sourceforge.net/</a><p>It finds words in O(log(n)) time by using an additional index.