Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерные сети / Комп сети 5_awk.ppt
Скачиваний:
18
Добавлен:
22.02.2016
Размер:
167.42 Кб
Скачать

Программирование вывода текста awk

Программа awk выполняет работу по обработке файлов, содержащих тексты и

числовые данные, и позволяет

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

Эту команду можно использовать для сопоставления с образцами или использовать как генератор отчетов для

файлов, существующих в системе.

1

Внимание. В awk могут быть проблемы с русской буквой я/Я.

Логика действия:

-сопоставление с шаблоном;

-преобразование текста.

Шаблоны задаются:

-в командной строке;

-в файле (в этом случае необходимо использовать опцию -f).

2

Полная командная строка для awk

состоит из четырех частей:

-имени команды

-[опция -Fсимвол] [опция -f];

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

-необязательного оператора-действия, если присутствует оператор-шаблон;

-имени или имен файлов.

В awk символ # обозначает начало

 

комментария.

3

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

а оператор-действие - для работы над этими строками.

Оператор-шаблон должен предшествовать оператору-действию,

который должен быть заключен в фигурные скобки как показано ниже:

awk 'pattern_stateman {action_stateman}' file(s)

4

Внимание! Нельзя одновременно опускать и шаблон и действие.

Если не задан оператор-шаблон, то

оператор-действие выполняется над каждой строкой файла или стандартного

ввода.

Если не задан оператор-действие, то строка просто копируется на стандартный

вывод.

Если не заданы имена файлов или стоит

знак "-", то используется стандартный

 

ввод.

5

 

Если оператор-шаблон и/или оператор действия задаются в командной строке, то они заключаются в одинарные кавычки с

той целью, чтобы интерпретатор shell их не интерпретировал.

Ввод делится на записи, разделенные

специальным символом, по умолчанию это

"CR" (возврат каретки).

То есть в awk обработка производится построчно. Разделитель можно поменять,

переопределив встроенную переменную RS. 6

Записи делятся на поля, разделенные

специальным символом (обычно это “Пробел”).

Его можно переопределить:

-используя встроенную переменную FS;

-указав в опции –Fсимвол.

Внимание!

Если разделитель “Пробел”, то он не учитывается в начале строки.

Если разделитель “неПробел”, то в

начале строки учитываются эти разделители. 7

В awk не существует оператора read. awk автоматически получает каждую запись.

Каждая исходная строка сопоставляется с каждым шаблоном. В случае успеха выполняется заданные действия.

После сопоставления со всеми шаблонами вводится следующая строка и процесс повторяется.

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

8

1. Обращение к полям

Как и команда sort, команда awk

ориентирована на работу с полями и реализует простой метод обращения к полям по имени.

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

Поэтому поле 1 имеет имя $1, поле 2 - $2 и т.д.

Запись $0 обозначает все поля, то есть всю строку.

9

Последнее поле обозначается через $NF, где NF - встроенная переменная,

значение которой устанавливается равным числу полей.

Необходимо делать различие между NF-

числом полей и $NF- последним полем строки.

Причем, в команде awk только номера полей начинаются со знака доллара ($), а переменные не имеют такого префикса.

10

Соседние файлы в папке Компьютерные сети