Назад | Оглавление | Вперед |
![]() |
Лабораторная работа 7Регулярные выражения и команда grepЦель работы: ознакомление с языком базовых регулярных выражений и командой grep. |
Регулярные выражения представляют собой одно из наиболее интересных и полезных свойств операционной системы Unix. Регулярные выражения являются языком описания текстовых шаблонов, который используется во многих системных утилитах для выполнения операций поиска и отбора при разнообразных обработках текстовых строк. Мы начинаем изучать регулярные выражения с применения их в утилите поиска grep.
Во многих дистрибутивах обязательным является укаание опции -е для поиска по шаблону, т.е. grep -e шаблон
Сейчас регулярные выражения используются многими текстовыми редакторами и утилитами для поиска и изменения текста на основе выбранных правил. Многие языки программирования уже поддерживают регулярные выражения для работы со строками. Например, Perl и Tcl имеют встроенный в их синтаксис механизм обработки регулярных выражений. Набор утилит (включая редактор sed и фильтр grep), поставляемых в дистрибутивах Unix/Linux, одним из первых способствовал популяризации понятия регулярных выражений.
Современные (расширенные) регулярные выражения в POSIX
Регулярные выражения в POSIX аналогичны традиционному Unix-синтаксису, но с добавлением некоторых метасимволов:
+ - Указывает на то, что предыдущий символ или группа может повторяться один или несколько раз. В отличие от звёздочки, хотя бы одно повторение обязательно.
? - Делает предыдущий символ или группу необязательной. Другими словами, в соответствующей строке она может отсутствовать, либо присутствовать ровно один раз.
| - Разделяет альтернативные варианты регулярных выражений. Один символ задаёт две альтернативы, но их может быть и больше, достаточно использовать больше вертикальных чёрточек. Необходимо помнить, что этот оператор использует максимально возможную часть выражения. По этой причине, оператор альтернативы чаще всего используется внутри скобок.
Также было отменено использование обратной косой черты: \{…\} становится {…} и \(…\) становится (…).
Команда egrep похожа на grep, но использует "расширенный" язык для регулярных выражений. Она эквивалентна команде grep -E.
Работа выполняется с текстовыми файлами с именами query1, query2, query3, query4 и query5. Файлы содержат структурированный текст. Структура и содержимое файлов представлена в следующих справках:
1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 |
Для формировании последнего пункта отчета необходимо скопировать весь текст из консоли со всеми приглашениями ко вводу команды, самими командами и результатами роботы команд. Копирование выполнять после получения правильных результатов. Для этого необходимо с помощью мыши выделить нужный вам фрагмент текста, создать файл-отчет с помощью любого текстового редактора (например, nano) и в редакторе скопировать выделенный текст путем нажатия правой кнопки мыши. Также можно результаты выполнения команд перенаправлять в файл в режиме добавления, а синтаксис выполняемых команд взять из истории команд (команда history),либо использовать команду script.
Таким образом, отчет по работе 7 должен содержать протокол выполнения трех
команд grep (в соответствии с Вашим вариантом).
Пример выполнения задания.
Для протоколирования работы используйте команду
script или копируйте из консоли шаги выполнения и результаты.
Справка
Назад | Оглавление | Вперед |