Утилита awk#
Утилита и язык программирования awk используется для обработки и извлечения текстовых данных.
awk обрабатывает входные данные – стандартный ввод или файл – построчно, выполняя заданное действие для каждой строки/записи, которая соответствует шаблону. Если шаблон отсутствует, awk выполняет действие со всеми записями.
Все параметры awk находятся в кавычках, а действие, которое необходимо выполнить - в фигурных скобках.
Синтаксис awk:
awk <options> '<patterns> { <action> }'
Где:
<options>- опции;<patterns>- шаблоны;<action>- действие.
Часто используемые опции утилиты представлены в таблице ниже.
Опция |
Описание |
|---|---|
|
Считывание данных не из стандартного вывода, а из файла |
|
Разделитель полей, используется для разбиения текста на колонки |
|
Присвоение значения переменной, например |
|
Вывод списка переменных, их типов и конечных значений в файл |
|
Включение режима отладки утилиты, по умолчанию ввод команд происходит интерактивно с клавиатуры |
|
Выполнение указанного кода на языке |
|
Вывод результата работы утилиты в файл |
|
Вывод версии утилиты |
Часто используемые шаблоны утилиты представлены в таблице ниже.
Шаблон |
Описание |
|---|---|
|
Шаблоны, которые не применяются к входным данным, выполняются либо перед их чтением ( |
|
Выполнение действия для каждой входной записи, которая соответствует регулярному выражению |
|
Проверка, соответствуют ли определенные поля определенным регулярным выражениям |
|
Шаблоны соответствуют логическим |
|
Скобки могут использоваться для изменения порядка вычисления |
|
Указание - если первый шаблон верен, то для тестирования используется второй шаблон, в противном случае - третий |
Часто используемые действия утилиты представлены в таблице ниже.
Название |
Описание |
|---|---|
|
Вывод соответствующих данных в стандартный поток вывода |
|
Форматирование и вывод данных в стандартный поток вывода |
|
Выполнение команды в системе и отображение статуса в выводе |
|
Вывод длины строки |
|
Обрезка строки начиная с указанного символа и вывод результата с соответствующим количеством символов |
|
Вывод копии строки с переводом символов в прописные |
|
Вывод копии строки с переводом символов в заглавные |
Если функция у действия одна, то скобки () можно не использовать.
Примеры использования#
Для отображения в утилите
awkсписка запущенных процессов, полученного при использованииps ux, введите команду:ps ux | awk '{ print }'Для отображения информации о пользователе - имени, идентификатора, идентификатора группы и др. - из файла учетных записей
/etc/passwdвведите команду:awk -F: '{ print $1,$3,$4 }' /etc/passwdДля построчного отображения текста из условного файла
test.txtвведите команду:awk '{ print }' test.txtДля отображения первого и третьего поля в каждой строке условного файла
test.txtвведите команду:awk '{ print $1,$3 }' test.txt