Шпаргалка по GNU grep
| Linux
GNU grep находит шаблоны в текстовых файлах и потоках.
Основы
grep [pattern] FILE
grep '^[A,E].*o' f.txt |
Найти строку, начинающуюся с A или E и заканчивающуюся на o |
grep -f pat.txt f.txt |
Сканировать f.txt, используя содержимое pat.txt как регулярное выражение |
grep -i Gnu f.txt |
Найти "gnu" в f.txt, игнорируя регистр букв. |
grep -v gnu f.txt |
Найти все строки, не содержащие "gnu" (инвертировать соответствие) |
grep -w 'a.*o' f.txt |
Искать только совпадения целого слова, игнорируя подстроки |
grep -x 'a.*o' f.txt |
Искать только совпадения целой строки, как в ^(a.*o)$ |
Вывод
-c |
Вывести только количество строк, содержащих совпадение |
--colo[u]r |
Отображение совпадений в цвете |
-l |
Вывести имена файлов с совпадениями |
-L |
Вывести имена найденных файлов, в которых не было совпадений |
-o |
Печатать только совпадающую часть строки |
-s |
Подавить ошибки (например, несуществующие или нечитаемые файлы) |
-A n |
Вывести n количество строк после совпадающей строки |
-B n |
Вывести n количество строк перед совпадающей строкой |
-C n |
Вывести n количество строк до и после совпадающей строки |
Выходные префиксы
-b |
Вывести байтовое смещение совпадения во входном файле |
-H |
Вывести имя файла, содержащее совпадение |
-h |
Не печатать имя файла, содержащее совпадение |
-n |
Вывести номер строки каждого совпадения |
-T |
Распечатать начальный Tab перед совпадениями, чтобы выходные данные были аккуратно выровнены |
Выбор файла и каталога
-a |
Обработать двоичный файл, как если бы это был текст |
-D <skip|read> |
Пропустить или прочитать FIFO, устройство или сокет |
-d <skip|read|recurse> |
Пропуск, чтение или рекурсивный просмотр каталога |
--exclude '*.sh' |
Не искать файлы с суффиксом .sh |
--exclude-from FILE |
Пропустить любой файл, указанный в FILE |
--exclude-dir *foo |
Пропустить любой каталог, заканчивающийся на foo |
-r |
Когда обнаруживается каталог, искать в нём файлы. |
-R |
Искать в каталогах и переходить по символическим ссылкам |
Варианты
-G |
Использовать базовое регулярное выражение (по умолчанию) |
-E |
Расширенное регулярное выражение |
-F |
Интерпретировать шаблон поиска как фиксированную строку, а не как регулярное выражение |
-P |
Использовать регулярное выражение Perl (PCRE) |
Регулярное выражение
. |
Любой одиночный символ |
? |
Соответствует предыдущему элементу ноль или один раз |
* |
Соответствует предыдущему элементу ноль или более раз |
+ |
Соответствует предыдущему элементу один или несколько раз |
{2} |
Двойное сопоставление предыдущего элемента |
{3,} |
Соответствует предыдущему элементу три или более раз |
{,4} |
Соответствовать предыдущему элементу не более четырех раз |
{1,5} |
Соответствовать предыдущему элементу хотя бы один раз, но не более пяти раз |
[A,B] |
Соответствие A или B |
[3-9] |
Соответствие всем цифрам от 3 до 9 |
^ |
Начало строки |
$ |
Конец строки |
\s |
Пробел |
[:alnum:] |
Буквенно-цифровой символ |
[:alpha:] |
Буквенный символ |
[:digit:] |
Цифры от 0 до 9 |
[:punct:] |
Пунктуация |
[:space:] |
Пробел |