Язык обработки данных AWK

Оглавление

Part: ОБЩАЯ ИНФОРМАЦИЯ

  • 1. Назначение и Формат использования
  • 2. Общая структура AWK-программы
  • Part: СТРУКТУРА AWK-ПРОГРАММЫ
  • 1. Язык AWK

    1. Назначение и Формат использования

    AWK - утилита предназначенная для простых, механических и вычислительных манипуляций над данными. Довольно несложные операции часто необходимо выполнить над целыми пакетами файлов, а писать для этого программу на одном из стандартных языков программирования является утомительным и, как правило, не очень простым делом. Оптимальное решение проблемы - использование специальной утилиты AWK, включающей в себя не громоздкий и удобный язык программирования, позволяющий решать задачи обработки данных с помощью коротких программ, состоящих из двух-трех строк.

    Утилита AWK изначально объединяла свойства утилит UNIX - sed и grep. В дальнейшем ее возможности значительно расширились. Настоящая документация ограничивается описанием возможностей утилиты AWK реализованной для компьютеров CONVEX. Утилита AWK была создана в 1977г, американскими авторами: Alfred V.Aho, Brian W.Kernighan и Peter J.Weinberger. Подробное описание всех возможностей утилиты AWK для UNIX дает их издание: ``The AWK Programming Language'', 1988.

    AWK сканирует input (стандартный или указываемый набор файлов), и над строками, удовлетворяющими заданному образцу, выполняет указываемые действия. Строка может содержать максимально до 256 символов.

    Формат:

    awk [-Fc] [-f file] [files]

    awk [-Fc] [prog] [files]

    prog - программа, вида: ' образец ${$действие$}$'

    file - файл с AWK-программой:

    образец { действие}

    образец { действие}

    ...

    files - файлы, предназначенные для AWK-обработки.

    -Fc - устанавливает разделитель полей в ``с'' (См. 1.2.1 и 2.4)

    2. Общая структура AWK-программы

    В начало страницы

    1. Язык программирования AWK допускает использование:
    • Полей;
    • Переменных (Стандартных, Массивов);
    • Арифметических выражений.

    2. Образец:

    • Регулярное выражение;
    • Выражение отношения;
    • Комбинация образцов;
    • BEGIN и END.

    3. Действие:

    • Последовательность предложений, разделенных ``;'' или ``\n'' (новая строка)

    Предложение:

    1. Вывод (Печать);
    2. Присваивание;
    3. Встроенная функция;
    4. Управляющая структура.

    Part: СТРУКТУРА AWK-ПРОГРАММЫ

    1. Язык AWK

    1.1 Поля

    В начало страницы

    Каждая сканируемая строка input рассматривается как состоящая из полей, разделенных разделительными символами (по умолчанию - пробел).

    На поля можно ссылаться из AWK программы следующим образом:

    1. $1 - Первое поле;
    2. $2 - Второе поле;
    3. ... и так далее...
    4. $0 - Ссылается на всю строку целиком.

    Строка может содержать максимально до 100 полей.

    1.2 Переменные

    1.2.1 Стандартные переменные


    < Drawing or tabular insertion skipped...>

    1.2.2 Значения переменных

    В начало страницы

    Переменные могут интерпретироваться как числовые или строковые. Они принимают значения в зависимости от контекста, например:

    x = 1, x воспринимается как число;

    x = " ", x - строка;

    x + "abc" - результат операции интерпретируется как число независимо от того, было ли х числом или строкой. Если строка не может быть интерпретирована как число ("abc"), то ее значение становится 0.

    Строка может содержать максимально до 256 символов.

    1.2.3 Переменные поля

    Ссылки на поля $1, $2, ... могут интерпретироваться в качестве переменных, например:

    $1 = "3" + $2 - первое поле принимает значение второго поля, увеличенного на 3.

    $(i+1) - интерпретируется как поле, номер которого зависит от значения переменной i.

    1.2.4 Массивы

    В начало страницы

    Допускается использование массивов. Массивы не объявляются, а принимают значения из контекста, например:

    x[NR] = $0 - элементу массива x, индексированному NR, присваивается обрабатываемая строка.

    x["apple"] - элементы массива могут индексироваться не числовым значением, т.е. строкой.

    1.3 Арифметические выражения

    Выражение:
    • Переменная;
    • Число;
    • Строка;
    • Встроенная функция;
    • Выражение < Операция> Выражение.

    < Операция> : "+", "-", "*", "/", "%"


<<< Оглавление Страница: 1  2 >>>