Grep – примеры использования

04/11/2013, автор admin, категории Ubuntu

Часто бывает так что необходимо найти какую либо строку в огромном проекте на битрикс, ни одна IDE не справляется с таким поиском, по крайней мере не быстро. Чтобы ускорить процесс поиска нужного кода не раз ипользовал эту замечательную команду grep в терминале ubuntu.

Вот краткий справочник по командам:

grep pattern file.txt	--поиск pattern в файле file.txt, с выводом полностью совпавшей строкой
grep -o pattern file.txt	--поиск pattern в файле file.txt и вывод только совпавшего куска строки
grep -i pattern file.txt	--игнорирование регистра при поиске
grep -bn pattern file.txt	  --показать строку (-n) и столбец (-b), где был найден pattern
grep -v pattern file.txt	 --инверсия поиска (найдет все строки, которые не совпадают с шаблоном pattern)
grep -A 3 pattern file.txt   --вывод дополнительных трех строк, после совпавшей
grep -B 3 pattern file.txt   --вывод дополнительных трех строк, перед совпавшей
grep -C 3 pattern file.txt  --вывод три дополнительные строки перед и после совпавшей
grep -r pattern $HOME  --рекурсивный поиск по директории $HOME и всем вложенным
grep -c pattern file.txt  --подсчет совпадений
grep -L pattern *.txt  --вывести список txt-файлов, которые не содержат pattern
grep -l pattern *.txt  --вывести список txt-файлов, которые содержат pattern
grep -w pattern file.txt  --совпадение только с полным словом pattern
grep -f patterns.txt file.txt --поиск по нескольким pattern из файла patterns.txt, шаблоны разделяются новой строкой
grep -I pattern file.txt  --игнорирование бинарных файлов
grep -v -f file2 file1 > file3  --вывод строк, которые есть в file1 и нет в file2
grep -in -e 'python' `find -type f`  --рекурсивный поиск файлов, содержащих слово python с выводом номера строки и совпадений
grep -inc -e 'test' `find -type f` | grep -v :0  --рекурсивный поиск файлов, содержащих слово python с выводом количества совпадений
grep . *.py  --вывод содержимого всех py-файлов, предваряя каждую строку именем файла
grep "Http404" apps/**/*.py  --рекурсивный поиск упоминаний Http404 в директории apps в py-файлах

Теги: