Всем привет.
Одним из известных инструментов поиска в Linux системах, которые можно использовать для поиска всего, будь то файл или строка или несколько строк в файле, - это утилита grep. Он очень обширен в функциональности, за счет большого количества поддерживаемых им опций, таких как: поиск с использованием строкового шаблона или регулярных выражений шаблон или perl based регулярных выражений и т.д.
Из-за его различных функциональных возможностей инструмент grep имеет множество вариантов, включая egrep (Extended GREP), fgrep (Fixed GREP), pgrep (Process GREP), rgrep (рекурсивный GREP) и т.д. Но эти варианты имеют незначительные отличия от оригинального grep. Давайте разберемся с различиями между тремя основными вариантами: «grep», «egrep» и «fgrep». Чтобы мы знали, что выбирать в соответствии со своими требованиями.
Некоторые специальные метасимволы grep:
+ - эквивалентно одному или нескольким вхождениям предыдущего символа.
? - это означает хотя-бы одно повторение предыдущего символа. Так запись «a?» будет соответствовать «a» или «aa».
(- начало выражения чередования.
) - конец выражения чередования.
| - сопоставление любого из выражений, разделенных символом ‘|‘. Например: «(a | b) cde» будет соответствовать «acde», либо «bcde».
{- этот метасимвол указывает начало спецификатора диапазона. Например: «a {2}» соответствует вхождению «aa» в файле 2 раза.
} - этот метасимвол указывает конец спецификатора диапазона.
Некоторые основные различия между grep, egrep и fgrep можно выделить следующим образом. Для этого набора примеров мы принимаем файл, в котором выполняется операция:
grep is acommand that can be used on unix-like systems.
it searches for any string in list of strings or file.
It is very fast.
(f|g)ile





