Регулярные выражения в linux представляют собой одно из
наиболее интересных и полезных свойств операционной системы Unix. Регулярные
выражения являются языком описания текстовых шаблонов, который используется во
многих системных утилитах для выполнения операций поиска и отбора при
разнообразных обработках текстовых строк. Мы начинаем изучать регулярные
выражения с применения их в утилите поиска
grep.
Во многих дистрибутивах обязательным является укаание опции -е для поиска по шаблону, т.е. grep -e шаблон
Сейчас регулярные выражения используются многими текстовыми редакторами и утилитами для поиска и изменения текста на основе
выбранных правил. Многие языки программирования уже поддерживают регулярные выражения для работы со строками. Например, Perl и Tcl
имеют встроенный в их синтаксис механизм обработки регулярных выражений. Набор утилит (включая редактор sed и фильтр grep),
поставляемых в дистрибутивах Unix/Linux, одним из первых способствовал популяризации понятия регулярных выражений.
Современные (расширенные) регулярные выражения в POSIX
Регулярные выражения в POSIX аналогичны традиционному Unix-синтаксису, но с добавлением некоторых метасимволов:
+ - Указывает на то, что предыдущий символ или группа может повторяться один или несколько раз. В отличие от звёздочки,
хотя бы одно повторение обязательно.
? - Делает предыдущий символ или группу необязательной. Другими словами, в соответствующей строке она может отсутствовать,
либо присутствовать ровно один раз.
| - Разделяет альтернативные варианты регулярных выражений. Один символ задаёт две альтернативы, но их может быть и больше,
достаточно использовать больше вертикальных чёрточек. Необходимо помнить, что этот оператор использует максимально возможную часть
выражения. По этой причине, оператор альтернативы чаще всего используется внутри скобок.
Также было отменено использование обратной косой черты: \{…\} становится {…} и \(…\) становится (…).
Команда egrep похожа на grep, но использует "расширенный" язык для регулярных выражений. Она эквивалентна
команде grep -E.
Для протоколирования работы используйте команду
script или копируйте из консоли шаги выполнения и результаты.
Пример выполнения задания.
Справка