grep — утилита для поиска указанного текста в файлах, именах файлов и т.д. из командной строки.
Можно искать используя grep даже например в результатах выполнения какой-то команды:
КОМАНДА | grep ТЕКСТ
Можно посчитать количество строк где встречается указанный текст:
grep -c TEXT FILENAME
grep TEXT FILENAME | wc -l
grep -o 'TEXT' FILENAME | uniq -c
Для поиска и отображения строк с указанным текстом выполним:
grep ТЕКСТ ФАЙЛ
Полнотекстовый поиск — Поиск текста во всех фалах указанной директории:
grep TEXT /dir/*
grep -r TEXT /dir/*
grep -rnw '/dir/' -e 'TEXT'
Полнотекстовый поиск — Поиск текста во всех фалах указанной директории (-F указывает что должно быть точное соответствие тексту, иначе например вместо «test.ixnfo.com» будет находить также «test@ixnfo.com» и т.д.):
grep -Fr TEXT /dir/*
Искать только целое указанное слово:
grep -w СЛОВО ФАЙЛ
Отобразить строки где встречаются указанные слова:
grep -E "(СЛОВО|СЛОВО|СЛОВО)" ФАЙЛ
Отобразить строки где указанные слова встречаются несколько раз:
grep -E "(СЛОВО|СЛОВО).*\1"
Отобразить также строки после искомой, например 5 строк:
grep -A 5 СЛОВО ФАЙЛ
Или строки перед искомой:
grep -B 5 СЛОВО ФАЙЛ
Показать строки где встречается СЛОВО1,СЛОВО2,СЛОВО3:
grep СЛОВО[1-3] ФАЙЛ
Показать все строки где встречается IP-адрес:
grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" ФАЙЛ
Показать строки где встречаются заглавные буквы:
grep "[[:upper:]]" ФАЙЛ
Показать строки где встречается указанное слово с табуляцией по обе стороны:
grep "[[:blank:]]СЛОВО[[:blank:]]" ФАЙЛ
grep " СЛОВО " ФАЙЛ
Найти и заменить текст на другой можно командой:
grep 'текст_который_ищем' -P -R -I -l * | xargs sed -i 's/текст_который_ищем/текст_на_который_заменяем/g'
Опишу некоторые опции запуска:
-b (отображение номера блока в котором был найден фрагмент, блоки нумеруются с 0)
-c (отображение только количества строк в которых был найден фрагмент)
-r (искать также в подкаталогах)
-n (отображает номер строки)
-h (скрывает имена файлов перед найденными фрагментами, когда поиск выполняется по нескольким файлам)
-l (отображение только имен файлов где встречается фрагмент)
-i (игнорирование регистра символов, то есть большие и маленькие буквы равны при поиске)
-s (скрывает сообщения о несуществующих или недоступных файлах)
-v (отображает все строки кроме указанного образца)