Есть ещё такая штука как ack, которая утверждает что она лучше grep

Смотрим конфиги без комментариев

$ cat config_filename | grep -vE "^#|^$"

Отфильтровать строки без учёта регистра, содержащие одно из слов one, two, three:

$ cat file | grep -iE "(one|two|three)"

Найти по папкам данное слово и вывести номер строки и путь до файла:

$ grep -nri 'foobar' *

Рекурсивный поиск шаблона в группе файлов

grep -R /way/to/*any/folder/ foo
grep foo `ls -R /way/to/any*/folder/text.file`
grep foo `find /way/to/*any/folder/ -name "text.file"`
for file in /way/to/some/folder/text*.file; do grep foo $file; done

Убрать пустые строки в файле

$ grep -v '^$' input.txt > output.txt

Убрать все строки, что содержат 'ba'

$ touch foo bar baz
$ ls | grep -v ba
foo

Убрать из файла file.txt все строки, содержащиеся в файле not.wanted

$ cat not.wanted 
2
4
6
8
$ cat file.txt 
1
2
3
4
5
6
7
8
9
0
$ grep -v -f not.wanted file.txt 
1
3
5
7
9
0

Найти вхождение числа 6 в потоке ввода и вывести его вместе с 2 строками до и одной строкой после

$ for i in {1..10} ; do echo $i; done | grep 6 -B2 -A1
4
5
6
7
-----------