В пределах текста строки s может быть использованы комбинации вида
\n, где n есть целое от 0 до 9 включительно. Такого рода
комбинация применяется, чтобы указать текст в n-ных по порядку скобках.
Комбинация \0 означает полный текст соответствующий регулярному
выражению r, как это делает символ SPMamp;;.
В отличие от sub() и gsub() здесь модифицированная
строка возвращается как результат функции не изменяя при этом строку t.
Вернуть индекс (смещение от начала) строки t в строке s, если
строка t содержится в строке s.
В противном случае
вернуть 0.
length([s])
Вернуть длину строки s или длину $0, если s опущено.
match(s, r)
Вернуть позицию, с которой начинается последовательность удовлетворяющая
регулярному выражению r или 0, если такой последовательности нет, а
также установить переменные RSTART и RLENGTH.
split(s, a [, r])
Разбить строку s на части, которые присвоить элементам массива a. Разбивание строки s произвести в соответствии с регулярным
выражением r. Если r опущено, то в качестве разделителя
используется значение переменной FS. Массив a очищается перед
разбиванием строки s.
sprintf(fmt, expr-list)
Вернуть сформированную строку для печати expr-list в соответствии с
форматом fmt. Например
awk -v A=192 '{print(sprintf(SPMquot;где t - имя файла, A - имя переменной, которой присваивается
значение 192, а затем печатается в соответствии с форматом %20d.
sub(r, s [, t])
Почти то же, что gsub(), но заменяется только первая подходящая
подстрока.
substr(s, i [, n])
Вернуть подстроку, которая начинается в позиции i строки
s с длиной максимум n символов. Если n опущено, то
возвращается часть s начиная с позиции i.
tolower(str)
Вернуть строку str с символами преобразованными в строчные буквы.
Неизображаемые символы или числа не преобразуются.
toupper(str)
Вернуть строку str с символами преобразованными в заглавные
(прописные) буквы.
Для получения времени программа awk имеет две функции:
systime()
Возвращает текущее время в секундах начиная с 1 января 1970 года.
strftime([format [, timestamp]
)]
Возвращает
отформатированную
отметку времени (timestamp) в соответствии с форматом format.
Строка отметки времени должна иметь вид как после функции systime().
Если строка timestamp опущена, то используется текущее время. Если
строка format опущена, то используется формат, который применяется в
программе date. Для получения списка допустимых форматов можно
обратиться к спецификации функции strftime() в ANSI C.
Возвращает значение натурального логарифма от expr.
rand()
Возвращает случайное значение в интервале [0-1].
sin(expr)
Возвращает значение sin(expr).
sqrt(expr)
Возвращает значение sqrt(expr) (квадратный корень из expr).
srand([expr])
Устанавливает новое исходное значение для генератора случайных чисел.
Возвращает предыдущее исходное значение. Если
expr опущено, то используется текущее время в секундах. Таким
образом, если вы
желаете, чтобы у вас при каждом новом запуске awk,
генерировалась
новая псевдослучайная последовательность в функции rand(), то вам
полезно вызвать функцию srand() перед циклом обращений к функции
rand().
Наконец, в программах awk можно определять новые функции.
Определение функций
выполняется следующим образом:
function name(parameter list) { statements }
Внутри тела функции можно определить локальные переменные, которые должны
быть описаны в поле параметров, но отделены от них более чем одним
пробелом. Например,
function MyFunction(i,j, a,b,c) # a, b и c являются локальными переменными. { ... } {MyFunction(43,61)}
Заметим, что левая скобка в вызове функции должна следовать сразу за
именем функции (без пробела).