русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Лабораторная работа №7. Регулярные выражения. Команда egrep


Дата добавления: 2013-12-23; просмотров: 425; Нарушение авторских прав


Ход работы

1. Запустите оболочку Midnight Commander и выполните следующие действия:

- используя инструмент поиска, найдите в каталоге /usr/share/doc/ все файлы, имеющие расширение html;

- определите, сколько файлов в каталоге /bin имеют имена, состоящие из трех символов;

- в домашнем каталоге осуществите поиск файлов, имена которых содержат один из символов a,b,c,d,e;

- используя классы, найдите файлы с произвольным расширением, имена которых состоят ровно из двух букв в верхнем регистре.

Завершите работу с файловой оболочкой.

2. Проверьте последовательно существование файлов HOSTNAME и crontab в каталоге /etc.

3. Осуществите в каталоге /dev поиск всех файлов, имена которых начинаются на tt, используя шаблоны имен файлов.

4. Используя шаблоны, осуществите в каталоге /etc поиск всех файлов, имена которых состоят не менее, чем из 5 символов и второй символ находится в диапазоне от a до q.

5. Осуществите в каталоге /usr/bin поиск всех файлов, имена которых начинаются на au с выводом информации в файл au.txt, находящийся в домашнем каталоге. Просмотрите содержимое файла au.txt.

6. Осуществите в каталоге /usr поиск каталогов, имена которых начинаются на li.

7. Определите права доступа каталога mode и осуществите в домашнем каталоге поиск каталогов, которые имеют права доступа, аналогичные каталогу mode.

8. Осуществите в домашнем каталоге поиск всех файлов, владельцем которых является текущий пользователь и текущая группа пользователей.

9. В домашнем каталоге осуществите поиск файлов, которые были созданы в течение последних 10 дней.

10. В домашнем каталоге осуществите поиск файлов, которые были созданы позднее 10 дней назад, но ранее 6 дней назад.

11. Осуществите в каталоге /usr/lib поиск всех файлов, размер которых более 1 Мб, но менее 2 Мб.



12. В домашнем каталоге осуществите поиск всех символических ссылок.

 

 

Цель работы: освоить принципы составления базовых и расширенных регулярных выражений и их использование в команде egrep.

 

Используемые наборы регулярные выражения отличаются от приложения к приложению. Выделяют:

базовые регулярные выражения, которые во всех программах обрабатываются одинаково.

расширенные регулярные выражения, используемые, например, в команде egrep.

регулярные выражения perl. Используются при написании скриптов на языке Perl.

Регулярное выражение представляет собой набор символов, некоторые из которых имеют специальное значение (являются метасимволами). В шаблонах расширенных регулярных выражений используются следующие метасимволы (представлены как базовые, так и расширенные).

Символ Описание Пример
. (точка) Любой одиночный символ c.t — «cat», «cut», но не «ct» и не «c.t»
^ (циркумфлекс) Начало строки ^Computer — все строки, начинающиеся со слова «Computer», но не с «computer»
$ Конец строки Memory$ — все строки, оканчивающиеся на слово «memory», но не на «memory.»
* Предыдущий символ встречается 0 и более число раз подряд 200*9 — «209», «2009», «20009», но не «20019» и «20099»
+ Предыдущий символ встречается 1 и более число раз подряд 200+9 — «2009», «20009», «200009», но не «209» и «20099»
? Предыдущий символ встречается ровно 1 раз 200?9 — «2009»
\символ Экранирование спецсимволов: $ . ' " * [ ] ( ) ^ | \ + ? error\.$ — все строки, оканчивающиеся на «error.», но не на «error»
[список] Диапазон символов; для удобства элементы списка можно разделять запятыми [Aa][B,b][0-9] — «ab1», «aB5», но не «Aa1», «aB»
[^список] Символы, не соответствующие списку [^a-zA-Z] — любой символ, кроме буквы
[список]* Список может повторяться неопределенное количество раз [a-z,A-Z]* — любое слово
шаблон\{n\} Шаблон встречается ровно n раз подряд x\{3\}y — последовательность «xxxy»
шаблон\{n,\} Шаблон встречается не менее n раз подряд x\{3,\}y — «xxxy», «xxxxy», «xxxxxy», но не «xxy»
шаблон\{,n\} Шаблон встречается не более n раз подряд x\{,3\}y — «xy», «xxy», «xxxy», но не «y», «xxxxy»
шаблон\{n,m\} Шаблон встречается не менее n и не более m раз подряд x\{2,4\}y — «xxy», «xxxy», «xxxxy», но не «xy» или «xxxxxy»
(шабл1|шабл2) шабл1 или шабл2 ([Oo]ne|[Tt]wo) — одно из слов «one», «One», «two», «Two»

 

При задании явного количества повторений числа n и m могут принимать значения от 0 до 255. Кроме указанных метасимволов возможно применение классов (см.п.1.1). Для указания на начала и конца слова применяются конструкции вида \< и \> соответственно (под словом понимается набор символов строки между разделителями).

Некоторые полезные примеры регулярных выражений:

^[^l] — исключает строки, начинающиеся не с l;

^$ — пустая строка;

^.$ — строка из одного символа;

^…$ — строка из любых трех символов;

^.*$ — строка из любого числа символов;

[a-z][a-z]* — по крайней мере, одна строчная буква;

\<"word"\> — слово word в кавычках;

\<"*word"*\> — слово word в кавычках или без них;

"[^"]" — строка в кавычках;

(1[012]|[1-9]):[0-5][0-9]?(am|pm) — время в формате 7:15am или 07:15pm.

[01]?[09]|2[0-3]:[0-5][0-9] — время в 24-часовом формате c удалением или без лидирующих нолей при указании часов (1:23 или 01:23)

Общий формат команды egrep:

egrep [опции] [шаблон] [файлы] — ищет в указанных файлах строки, соответствующие шаблону. Если имена файлов не заданы, строки ищутся в стандартном вводе. По умолчанию egrep выводит совпадающие строки на стандартный вывод. В качестве шаблона выступают регулярные выражения.

Внимание! Сравнение строк происходит с целым шаблоном, то есть, при указании в качестве шаблона abcd, фактически будет происходить сравнение с регулярным выражением ^abcd$.

Опции команды egrep:

-c — для каждого входного файла вместо обычного вывода печатать количество совпавших строк;

-i — игнорировать регистр символов (как в шаблоне, так и во входящих файлах);

-l — печатать имена файлов, в которых был найден шаблон;

-L — печатать имена файлов, в которых не был найден шаблон;

-n — выводить номера строк и сами строки, соответствующие шаблону;

-r — обрабатывать все файлы каждого каталога рекурсивно;

-v — выводить строки, не соответствующие шаблону;

-x — выводить только те строки, которые полностью совпали с шаблоном;

-w — выводить только те строки, в которых найдено совпадение целого слова с шаблоном.

 



<== предыдущая лекция | следующая лекция ==>
Необходимые сведения | Лабораторная работа №8. Перенаправление стандартных потоков, конвейеры


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.013 сек.