The -I flag only considers text files. This radically speeds up recursive greps.
I use ripgrep when I need better speed. I've pretty much switched to ripgrep these days, but still use GNU grep when I'm answering questions on stackoverflow, reddit, etc.
ABC flags
Good to also know about `--group-separator` and `--no-group-separator` when there are multiple non-contiguous matches. Helps to customize the separator or remove them altogether. Sadly, these options are still not explained in `man grep` on Ubuntu. You'll have to use `info grep` or the online manual to find them.
Options I use often that is not mentioned in the article:
* `-c` to count the number of matches
* `-F` for fixed string matching
* `-x` to match whole lines
* `-P` for PCRE (as mentioned in many comments here)
* `--color=auto` this is part of command name alias, so it is always used
Comments
I use ripgrep when I need better speed. I've pretty much switched to ripgrep these days, but still use GNU grep when I'm answering questions on stackoverflow, reddit, etc.
Good to also know about `--group-separator` and `--no-group-separator` when there are multiple non-contiguous matches. Helps to customize the separator or remove them altogether. Sadly, these options are still not explained in `man grep` on Ubuntu. You'll have to use `info grep` or the online manual to find them.
Options I use often that is not mentioned in the article:
* `-c` to count the number of matches
* `-F` for fixed string matching
* `-x` to match whole lines
* `-P` for PCRE (as mentioned in many comments here)
* `--color=auto` this is part of command name alias, so it is always used
I wrote a book as well on "GNU grep and ripgrep": https://github.com/learnbyexample/learn_gnugrep_ripgrep Free to read online.