русс | укр

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

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

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

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


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

ЗАДАНИЯ


Дата добавления: 2015-07-09; просмотров: 557; Нарушение авторских прав


· С помощью sed получите список только процессов, связанных с виртуаль- ными терминалами с первого по четвертый.

· Произведите замену строки user в потоке, считанном из файла /etc/passwd,

на строку extrauser.

· Используя регулярное выражение ^.*bash и оператор &, получите заком- ментированный символом "решетка" список всех пользователей с оболоч- кой bash.


 

Регулярные выражения в awk

В awk регулярные выражения могут использоваться аналогично тому, как они применяются в sed — для указания строк, которые должны подлежать обра- ботке. Так, следующая команда выведет список только таких процессов в системе, которые были запущены в промежутке с 15:20 до 15:29.

 

Пример 9.18. Регулярные выражения в awk

 

$ ps -ef | awk '/[[:blank:]]15:2[0-9][[:blank:]]/{print $5,$8}' 15:20 /usr/lib/openoffice/program/soffice.bin

15:29 [kjournald]

 

Эта команда (см. пример 9.18) выводит два столбца из потока, генерируемого командой ps –ef, столбец с информацией о времени запуска процесса и столбец с именем команды, запустившей процесс.

В этом случае пришлось указать наличие пробельных символов до и после столбца со временем запуска команды, т. к. далее в выводе команды ps -ef находится столбец, показывающий суммарное время выполнения процесса процессором. Наличие дополнительных регулярных выражений для про- бельных символов сильно загромождает команду. Однако awk позволяет про- верять на соответствие регулярному выражению не только целые строки, этот редактор отлично справляется с проверкой отдельных полей строк. Да- лее приведен пример команды, которая выполняет ту же задачу, что и пре- дыдущая (пример 9.19).

 

Пример 9.19. Поиск регулярного выражения в поле

 

$ ps -ef | awk '$5~/15:2[0-9]/{print $5,$8}' 15:20 /usr/lib/openoffice/program/soffice.bin



15:29 [kjournald]

 

Синтаксис этой команды намного яснее предыдущей: здесь проверяется сов- падение только пятого поля строки с регулярным выражением. Это достига- ется с помощью оператора ~, который требует удовлетворения данного поля регулярному выражению.

Наоборот, при необходимости можно получить список строк, не удовлетво- ряющих регулярному выражению, с помощью оператора !~. Например, ко- манда, приведенная в примере 9.20, выдаст список только таких процессов, которые не были запущены с 15:20 до 15:29.


 

Пример 9.20. Инверсия регулярного выражения

 

$ ps -ef | awk '$5!~/15:2[0-9]/{print $5,$8}'

 

Команда awk позволяет работать с расширенным синтаксисом регулярных выражений. Так, например, можно получить список всех процессов, в ко- мандной строке которых есть bash или csh (пример 9.21).

 

Пример 9.21. Расширенные регулярные выражения в awk

 

$ ps -e | awk '$4~/(ba|c)sh/' 1749 pts/0 00:00:00 bash

7372 pts/0 00:00:00 csh

 

Особо следует отметить, что awk не поддерживает обратных ссылок, а сим- вол группирования здесь используется лишь вместе с оператором перечисле- ния ИЛИ (инфикс |). Однако практически это и не требуется, т. к. в awk име- ется возможность представления строки в виде набора полей, которые можно сравнивать между собой.

 



<== предыдущая лекция | следующая лекция ==>
ЗАДАНИЯ | Сценарии оболочки


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


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

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

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


 


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

 
 

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

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