В Linux существуют утилиты grep
, egrep
и fgrep
, предназначенные для поиска текста в файлах. На первый взгляд они похожи, но различаются способом обработки поисковых шаблонов:
grep
— использует базовые регулярные выражения (от англ. Basic Regular Expressions), в которых специальные символы (?
,+
,{}
,|
) не работают как операторы, пока их не экранировать обратным слэшем (\
);egrep
(илиgrep -E
) — использует расширенные регулярные выражения (от англ. Extended Regular Expressions), где большинство операторов работают без экранирования;- fgrep (или grep -F) — не применяет регулярные выражения, а ищет точное совпадение по тексту, воспринимая все символы буквально.
В этой статье на практических примерах мы рассмотрим, чем отличаются grep
, egrep
и fgrep
в Linux.
Содержание:
Использование команды grep
Начнем с простого: найдем с помощью утилиты grep
все строки, где встречается последовательность символов hat
. Это может быть отдельное слово или его часть. Выполним в терминале следующую команду:
Немного усложним задачу и добавим в поисковый шаблон знак +
. В команде grep
этот символ по умолчанию не считается специальным. Чтобы утилита поняла, что +
— это не просто знак, а является оператором «один или больше», его следует экранировать обратным слэшем. Например:
Аналогично нужно экранировать и другие специальные символы, например, |
(который используется как оператор «ИЛИ»):
Читайте также: Как найти несколько слов в файле в Linux.
Применение утилиты egrep
Утилита egrep
работает с расширенными регулярными выражениями. В них многие специальные символы (такие как +
, ?
, {}
, |
) сразу воспринимаются как операторы без необходимости обозначения. То есть, их не нужно дополнительно экранировать.
Например:
Благодаря расширенным регулярным выражениям, с помощью egrep
можно искать совпадения в тексте по более сложным шаблонам. Например, найдем в файле слова, начинающиеся на h
и заканчивающиеся на t
:
Читайте также: 5 команд для поиска файлов в Linux.
Поиск текста с помощью fgrep
Команда fgrep
(или grep -F
) не использует регулярные выражения и ищет только точные совпадения текста. Все символы воспринимаются буквально, включая те, которые обычно считаются специальными.
Например:
Читайте также: Как использовать find, чтобы найти файлы разных форматов в Linux.
Вывод
Теперь Вы знаете, в чем основные отличия между утилитами grep
, egrep
и fgrep
в операционной системе Linux. Надеемся, что наша статья была полезной для Вас!
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.