Руководство по Bash для начинающих |
Назад |
Глава 4: Регулярные выражения |
|
Подводим итог
Регулярные выражения являются мощным инструментом, предназначенным для выбора конкретных строк из файлов или из выходного потока. Регулярные выражения используются во многих командах UNIX: vim, perl, в базе данных PostgreSQL и так далее. С помощью внешних библиотек их можно добавить в любой язык или приложение, они нашли свое применение даже в системах, отличных от UNIX. Например, регулярные выражения можно использовать в электронных таблицах Excel, приложения, поставляемого с пакетом Microsoft Windows Office. В этой главе мы познакомились с командой grep, которая необходима в любой среде UNIX.
| Замечание |
С помощью команды grep можно делать гораздо больше, чем те несколько задач, которые мы здесь обсуждали; мы использовали эту команду только для иллюстрации использования регулярных выражений. Версия GNU grep поставляется с большим объемом документации, которую мы настоятельно рекомендуем вам прочитать! |
В Bash есть встроенные возможности, позволяющие искать соответствие с шаблонами, в которых можно пользоваться символьными классами и диапазонами.
Упражнения
Приведенные ниже упражнения помогут вам освоить регулярные выражения.
- Покажите список всех пользователей в вашей системе, которые при входе в систему по умолчанию пользуются командной оболочкой Bash.
- Отобразите в директории /etc/group все строки, начинающиеся со строки "daemon".
- Отобразите все строки из тех же самых файлов, в которых нет этой строки.
- Покажите информацию о localhost из файла /etc/hosts, покажите номера строк, в которых найдено соответствие, и посчитайте количество вхождений искомой строки.
- Покажите список поддиректориев директория /usr/share/doc, в которых содержится информация о командных оболочках.
- Сколько файлов README находится в этих директориях? Не учитывайте файлы, имеющие формат "README.a_строка".
- С помощью команды grep создайте список файлов из вашего домашнего директория, которые были изменены менее 10 часов назад, не учитывайте при этом поддиректории.
- Поместите эти команды в скрипт, с помощью которого будет создаваться понятный выходной поток.
- Можете ли вы с помощью команды grep найти альтернативу для wc -l?
- Используйте таблицу файловых систем (например, /etc/fstab) и создайте список локальных дисковых устройств
- Создайте скрипт, с помощью которого можно проверять, существует ли пользователь в файле
/etc/passwd. Пока что вы можете в скрипте указать имя пользователя; на этом этапе вы не
обязаны использовать аргументы или условные выражения.
- Покажите конфигурационные файлы, находящиеся в директории /etc, в именах которых присутствуют числа.