Использование grep, egrep
grep расшифровывается как ‘global regular expression printer‘. grep отрезает нужные вам строки из текстовых файлов которые содержат указанный пользователем текст.
Утилиты grep — это семейство, которое включает в себя grep, egrep и fgrep для поиска. В большинстве случаев вам нужно использовать fgrep, поскольку он самый быстрый и просматривает только строки и слова. Однако набрать grep легко. Из-за его различных функциональных возможностей инструмент grep имеет множество вариантов, включая egrep (Extended GREP), fgrep (Fixed GREP), pgrep (Process GREP), rgrep (рекурсивный GREP) и т.д. Но эти варианты имеют незначительные отличия от оригинального grep.
grep может быть использован двумя путями — сам по себе или в комбинации с потоками.
grep очень обширен в функциональности, за счет большого количества поддерживаемых им опций, таких как: поиск с использованием строкового шаблона или RegExp регулярных выражений шаблон или perl based регулярных выражений и т.д.
Параметры grep
$ grep -V grep (GNU grep) 2.10 Copyright (C) 2011 Free Software Foundation, Inc. Лицензия GPLv3+
Существуют модификации утилиты grep: egrep (с обработкой расширенных регулярных выражений), fgrep (трактующая символы $*[]^|()\ как литералы, т.е. буквально), rgrep (с включённым рекурсивным поиском).
- egrep то же самое что grep -E
- fgrep то же самое что grep -F
- rgrep то же самое что grep -r
- grep [-b] [-c] [-i] [-l] [-n] [-s] [-v] ограниченное_регулярное_выражение_BRE [файл …]
Команда grep сопоставляет строки исходных файлов с шаблоном, заданным ограниченным_регулярным_выражением. Если файлы не указаны, используется стандартный ввод. Обычно каждая успешно сопоставленная строка копируется на стандартный вывод; если исходных файлов несколько, перед найденной строкой выдается имя файла. В grep используется компактный недетерминированный алгоритм. В качестве шаблонов воспринимаются ограниченные регулярные выражения (выражения, имеющие своими значениями цепочки символов, и использующие ограниченный набор алфавитно-цифровых и специальных символов). Они имеют тот же смысл, что и регулярные выражения в ed.
Для экранирования символов $, *, [ ], ^, |, ( ), и \ от интерпретации shell'ом проще всего заключать ограниченное_регулярное_выражение в одинарные кавычки.
Опции:
-b Предваряет каждую строку номером блока, в котором она была найдена. Это может пригодиться при поиске блоков по контексту (блоки нумеруются с 0). -c Выдает только количество строк, содержащих образец. -h Предотвращает выдачу имени файла, содержащего сопоставившуюся строку, перед собственно строкой. Используется при поиске по нескольким файлам. -i Игнорирует регистр символов при сравнениях. -l Выдает только имена файлов, содержащих сопоставившиеся строки, по одному в строке. Если образец найден в нескольких строках файла, имя файла не повторяется. -n Выдает перед каждой строкой ее номер в файле (строки нумеруются с 1). -s Подавляет выдачу сообщений о не существующих или недоступных для чтения файлах. -v Выдает все строки, за исключением содержащих образец. -w Ищет выражение как слово, как если бы оно было окружено метасимволами \< и \>.
grep --help
- -f, –file=ФАЙЛ -брать ШАБЛОН из ФАЙЛа.
Использование: grep [ПАРАМЕТР]… ШАБЛОН [ФАЙЛ]… Поиск ШАБЛОНА в каждом ФАЙЛЕ или в стандартном вводе. По умолчанию, ШАБЛОН представляет собой простое регулярное выражение (BRE). Пример: grep -i 'hello world' menu.h main.c
Выбор типа регулярного выражения и его интерпретация:
-E, --extended-regexp ШАБЛОН - расширенное регулярное выражение (ERE)
-F, --fixed-regexp ШАБЛОН - строки фиксированной длины, разделённые
символом новой строки
-G, --basic-regexp ШАБЛОН - простое регулярное выражение (BRE)
-P, --perl-regexp ШАБЛОН - регулярное выражения языка Perl
-e, --regexp=ШАБЛОН использовать ШАБЛОН для поиска
-i, --ignore-case игнорировать различие регистра
-w, --word-regexp ШАБЛОН должен подходить ко всем словам
-x, --line-regexp ШАБЛОН должен подходить ко всей строке
-z, --null-data строки разделяются байтом с нулевым значением, а не
символом конца строки
Разное:
-s, --no-messages подавлять сообщения об ошибках
-v, --revert-match выбирать не подходящие строки
-V, --version напечатать информацию о версии и выйти
--help показать эту справку и закончить работу
--mmap для обратной совместимости, игнорируется
Управление выводом:
-m, --max-count=ЧИСЛО остановиться после указанного ЧИСЛА совпадений
-b, --byte-offset печатать вместе с выходными строками смещение в
байтах
-n, --line-number печатать номер строки вместе с выходными строками
--line-buffered сбрасывать буфер после каждой строки
-H, --with-filename печатать имя файла для каждого совпадения
-h, --no-filename не начинать вывод с имени файла
--label=МЕТКА использовать МЕТКУ в качестве имени файла для
стандартного ввода
-o, --only-matching показывать только часть строки, совпадающей с ШАБЛОНОМ
-q, --quiet, --silent подавлять весь обычный вывод
--binary-files=ТИП считать, что двоичный файл имеет ТИП:
binary, text или without-match.
-a, --text то же что и --binary-files=text
-I то же, что и --binary-files=without-match
-d, --directories=ДЕЙСТВ как обрабатывать каталоги
ДЕЙСТВИЕ может быть read (читать),
recurse (рекурсивно) или skip (пропускать).
-D, --devices=ДЕЙСТВ как обрабатывать устройства, FIFO и сокеты
ДЕЙСТВИЕ может быть read или skip
-R, -r, --recursive то же, что и --directories=recurse
--include=Ф_ШАБЛОН обработать только файлы, подпадающие под Ф_ШАБЛОН
--exclude=Ф_ШАБЛОН пропустить файлы и каталоги,
подпадающие под Ф_ШАБЛОН
--exclude-from=ФАЙЛ пропустить файлы, подпадающие под шаблон
файлов из ФАЙЛА
--exclude-dir=ШАБЛОН каталоги, подпадающие под ШАБЛОН,
будут пропущены
-L, --files-without-match печатать только имена ФАЙЛОВ без совпадений
-l, --files-with-matches печатать только имена ФАЙЛОВ с совпадениями
-c, --count печатать только количество совпадающих
строк на ФАЙЛ
-T, --initial-tab выравнивать табуляцией (если нужно)
-Z, --null печатать байт 0 после имени ФАЙЛА
Управление контекстом:
-B, --before-context=ЧИС печатать ЧИСЛО строк предшествующего контекста
-A, --after-context=ЧИС печатать ЧИСЛО строк последующего контекста
-C, --context[=ЧИС] печатать ЧИСЛО строк контекста
-ЧИСЛО то же, что и --context=ЧИСЛО
--color[=КОГДА],
--colour[=КОГДА] использовать маркеры для различия совпадающих
строк; КОГДА может быть always (всегда),
never (никогда) или auto (автоматически)
-U, --binary не удалять символы CR в конце строки (MSDOS)
-u, --unix-byte-offsets выдавать смещение, как-будто нет CR-ов (MSDOS)
Вместо «egrep» предполагается запуск «grep -E». Вместо «fgrep» предполагается
«grep -F». Запуск под именами «egrep» или «fgrep» лучше не выполнять.
Когда не задан ФАЙЛ, или когда ФАЙЛ это -, то читается стандартный ввод.
Если указано меньше, чем два файла, то предполагает -h. При нахождении
совпадений кодом завершения программы будет 0, и 1, если нет.При возникновении
ошибок, или если не указан параметр -q, кодом завершения будет 2.
Об ошибках сообщайте по адресу <bug-grep@gnu.org>
Об ошибках в переводе сообщайте по адресу <gnu@mx.ru>
Домашняя страница GNU Grep: <http://www.gnu.org/software/grep/>
Справка по работе с программами GNU: <http://www.gnu.org/gethelp/>
(e)grep примеры
- Рекурсивно ищет слово expat во всех файлах каталога home
$ grep -R expat /home/
- Ищет во всех файлах каталога регулярное выражение
DIRMail="/home/vmail/cur" /bin/egrep -h -e ' IP .*[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}' \ $DIRMail/* | awk '{print $4}'
- Чтобы вывести несколько строк до и после найденного вхождения, нужно использовать параметры grep -B и -A, например в файле созданном tshark
$ tail -f /root/tshark_401_Unauthorized.pcap | grep Unauthorized -B 1 -A 2
- Еще один пример вывода переменных MySQL
mysql -e "SHOW VARIABLES LIKE '%'\G;" | grep innodb_buffer_pool_size -B 1 -A 1
- Например, нужно реализовать поиск вхождений в файле из списка слов в первом файле, получим такую строку:
grep -f /tmp/list /etc/asterisk/sip.conf
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга
