awk

Сообщения об ошибках

Если вы сделаете ошибку в программе awk, то получите сообщение об ошибке. Например, если вы попытаетесь запустить программу:

	$3 < 200 { print ($1}

то получите сообщение об ошибке:

        awk: syntax error at source line 1
        contex is
             $3 < 200 {print >>>$1}<<<
        awk: illegal statement at source line 1
             1 extra (

Некоторые ошибки могут быть обнаружены во время работы программы. Например, если вы попытаетесь поделить на 0 (ноль), то awk остановит обработку и распечатает номер ...

Примеры некоторых полезных программ

awk может использоваться для написания больших программ некоторой сложности. В нее могут входить некоторые короткие программы, которые для вас являются полезными и поучительными. Приведем некоторые из них.

Напечатать последнее поле каждой вводной строки:

	{print $NF}

Напечатать 10-ю вводную строку:

	NF == 10

Напечатать последнюю вводную строку:

	{line = $0}
	END {print line}

Напечатать строки, которые не имеют 4-го поля:

	NF != 4 {print $0, "не имеют 4-го поля" }

Напечатать вводные ...

Простые действия

В этом подразделе описаны встроенные и определенные пользователем переменные и функции простых действий.

10.4.1. Встроенные переменные

Кроме чтения вводного файла и разбиения на поля, awk считает число считанных записей и число полей внутри текущей записи. Вы можете использовать эти счетчики в программе awk. Переменная NR - это номер текущей записи, NF - число полей в записи. Так программа:

	{print NR, NF}

печатает номер каждой строки и число полей в этой записи. А
программа:

	{print NR, $0}

печатает каждую запись с ...

Простые шаблоны

Вы можете выбрать определенные записи для печати или другой обработки с использованием простых шаблонов. awk имеет три вида шаблонов. Первое - это шаблоны, называемые выражениями отношений, которые проводят сравнения. Например, оператор "==" тестирует на равенство. Чтобы напечатать строки, для которых 4-е поле равно строке "Asia", можно использовать программу, состоящую из одного шаблона:

	$4 == "Asia"

Если в качестве вводного файла взять countries, то
получим:

        USSR    8650    262     Asia
    ...

Печать форматированного файла

Для вывода форматированного файла awk обеспечивает Си-подобное выражение printf:

	printf format, expr1, expr2, ..., exprn 

которое печатает expr в соответствии со спецификацией в строке format. Например, программа awk:

	{print "%10s %6d\n", &1, $3}

печатает первое поле ($1) как строку из 10 символов, затем пробел, третье поле ($3) как десятичное число в шестисимвольном поле, затем новая строка (\n).

Если в качестве вводного взять файл countries, то программа напечатает следующую таблицу:

 ...

Основные сведения об awk

В этом подразделе приводится информация, достаточная для написания вами программ и их запуска.

10.1.1. Структура программы

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

Структура awk:

        шаблон {действие}
        шаблон {действие}

Пример.

	$ ...

awk - язык сканирования и обработки текста

В этом разделе описывается язык программирования, который позволяет вам легко управлять задачами обработки данных и поиска информации. С помощью awk вы можете составлять таблицы результатов обследования (наблюдения), сохраненных в файле, печатать различные отчеты, суммирующие эти результаты, изменить формат файла данных, используемый одним пакетом так, чтобы он мог быть использован и другим пакетом.

Язык awk легко поддается изучению. Он автоматически выполняет многие действия, для которых в других языках вам нужно составлять программы. Как ...

Ленты новостей