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

OFMT - формат вывода чисел ( по умолчанию принят %6g (См. printf ),

OFS - строка-разделитель полей в выходном потоке

(по умолчанию принят "Пробел"),

ORS - Строка-разделитель строк в выходном потоке

(по умолчанию принят символ перевода строки).

42

Операции, выполняемые awk

=

+ и += - и -= * и *= / и /=

% и %=

^ и ^=

 

II

-

&&

-

!

-

-присваивание

-сложение;

-вычитание;

-умножение;

-деление;

-деление по модулю

-возведение в степень; операция "ИЛИ" операция "И"

отрицание значения выражения

43

Операции отношения

>>= < <= == !=

Операции соответствия

~ - операция соответствия; !~ - операция несоответствия.

пусто - конкатенация строк

++ - операции инкремента и декремента (префиксные и постфиксными ).

44

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

Для принудительного преобразования

в число необходимо добавить ноль: str = "3"; str += 0;

Получим число 3.

Для принудительного преобразования в строку необходимо добавить пустую строку:

num = 3; num = num "";

Получаем строку "3".

45

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

cos(Expr)

- вычисление косинуса;

 

sin(Expr)

- вычисление синуса;

 

log(Expr)

- вычисление натурального

 

логарифма;

 

exp(Expr)

- вычисление возведения в

 

степень величины Е;

 

sqrt(Expr)

- вычисление квадратного

 

корня;

 

int(Expr)

- отбрасывание целой

 

 

части десятичного числа;

atan2(y,x)

- вычисление арктангенса

отношения y/x в пределах [-90о,90о];

46

rand()

- выдает случайное число в

пределах (0;1];

srand(Expr)

- устанавливает Expr в новое

значеие для

rand();

getline () - чтение следующей входной строки.

Возвращает 0 в случае конца файла, в противном случае - 1. Изменяет $0,$1,…,NF,FNR,

NR.

getline Var - считывает следующую запись в переменную Var. В этом случае разбиение на поля не происходит, то есть NF остается равной нулю, FNR и NR увеличиваются. Функция getline может применяться с перенаправлением ввода:

47

getline < filename getline Var < filename

Если filename эквивалентно стандартному вводу, то

происходит ввод с клавиатуры.

index (S1,S2) - положение строки S2 в строке S1. Возвращает нуль, если строка S2 не входит S1;

length (S) - длина строки S;

48

split (S,A,C) - разбиение строки S на массив

A[1],A[2]...A[n] по символу С, который должен находиться в двойных кавычках. Возвращает n. Если символ C не задан, то

применяется текущее значение переменной

FS.

sprintf (Fmt,...) - форматирование в соответствии со спецификацией Fmt; substr (S,M,N) - выделение подстроки в N символов строки S, начинающейся с индекса M. Если N отсутствует, то тогда до конца строки.

49

tolower (Str)- переводит символы строки Str в нижний регистр;

toupper (Str) - переводит символы строки Str в верхний регистр;

systime

- возвращает текущее

время в секундах по Гринвичу (по UTC),

начиная отсчет с 1 января 1970 года;

strftime (Fmt,t) - возвращает время t по формату Fmt.

50

sub (Re, SubStr, Str) – замещает в строке

Str подстрокой SubStr найденное первое совпадение шаблону (регулярному выражению) Re;

gsub (RegExp, SubStr, Str) – производит глобальное замещение в строке Str подстрокой SubStr найденные совпадения шаблону Re. Если в этих двух функциях Str опущена, то действие происходит над переменной $0.

51

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