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

Оглавление

3. Действия

3.1 Вывод /Печать/

Формат оператора печати:

PRINT [< список выражений> ] [ > < выражение1> ]

Если в списке выражения находятся через запятую, то значения этих выражений выводятся на output (печатаются) через символ-разделитель OFS (по умолчанию пробел). Если же выражения стоят через пробел, то на печати происходит их конкатенация.

Значение < выражения1> рассматривается как имя файла. Само его присутствие означает печать в файл. Если вместо ``> '' стоит ``> > '', то это означает добавление к уже существующему файлу. Можно использовать в одной программе максимально до 10 output файлов.

Оператор форматированной печати:

PRINTF формат [,список выражений] [ > выражение1]

формат: символьная строка в двойных кавычках. Идентичен формату, используемому в функции printf в языке ``С''. Формат может содержать:

  • обычные символы, они копируются на output.
  • escпоследовательности, представляющие неграфические символы, например, "\n" - новая строка.
  • спецификации для вывода аргументов, они следуют после символа ``%''. Число спецификаций должно быть равно числу аргументов. (Если оно меньше числа аргументов, то лишние аргументы игнорируются, если же больше - то это ошибка)

3.2 Присваивание

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

Оператор присваивания имеет вид:

< переменная> = < выражение>

Начальное значение переменной 0 или `` '' (пробел). Допускаются другие типы присваивания в соответствии с языком ``С'': "+=","-=","*=","/=","%=".

< переменная> ++, ++< переменная> - увеличение значения переменной на 1.

< переменная> --, --< переменная> - уменьшение значения переменной на 1.

3.3 Встроенные функции

length(arg) - Функция длины arg. Если arg не указан, то выдает длину текущей строки.

exp(),log(),sqrt() - Математические функции экспонента, логарифм и квадратный корень.

int() - Функция целой части числа.

substr(s,m,n) - Возвращает подстроку строки s, начиная с позиции m, всего n символов.

index(s,t) - Возвращает начальную позицию подстроки t в строке s. (Или 0, если t в s не содержится.)

sprintf(fmt,exp1,exp2,...) - Осуществляет форматированную печать (вывод) в строку, идентично PRINTF.

split(s,array,sep) - Помещает поля строки s в массив array и возвращает число заполненных элементов массива. Если указан sep, то при анализе строки он понимается как разделитель.

3.4 Управляющие структуры

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

Условное предложение:

if ( < условие> ) < предложение>

\hskip 1cm [else < предложение> ]

Предложения цикла:

while ( < условие> ) < предложение>

for (< выражение> ; < условие> ; < выражение> )

\hskip 1cm < предложение>

Например:

for(i=1; i< =NF; i++) - Аналогично циклу for в языке ``С''

for (i in array) - Цикл по элементам массива. Но, элементы массива доступны в этом случае в случайном порядке.

break - Немедленный выход из цикла.

continue - Переход к выполнению следующего предложения.

next - Немедленный переход к анализу следующей строки.

exit - Выход из программы (на конец input).

# - Комментарий


<<< Оглавление Страница: 3  4 >>>