Есть ещё такая штука как 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
Источники:
- 1 - xtips.ru
- 5 - www.cyberciti.biz
- 7 - stackoverflow.com