Пока значение переменной i находится в диапазоне между lower и upper, выполнять команду command. Последовательность команд должна заключаться в фигурные скобки. Можно использовать <= и любой другой оператор отношения. Для увеличения и уменьшения переменной цикла можно использовать ++ или —.
for (item in array)
command
Для каждого элемента (item) ассоциативного массива array выполнить команду command. Последовательность команд заключается в фигурные скобки. Каждый из элементов массива может адресоваться как array[item]. Элементы массивов в gawk хранятся таким образом, чтобы доступ к каждому из них занимал примерно равное время. Порядок может оказаться неприемлемым, поэтому для получения результатов в отсортированном виде необходимо через конвейер передать вывод команде sort.
for
function name(parameter-list){ statements
}
Определить пользовательскую функцию пате, состоящую из gawk-операторов (statements) и работающую со списком указанных параметров.
function
gensub (г, s, n, t)
Подставить s вместо соответствия регулярному выражению г в строке t. Строка t не изменяется, но gensub возвращает ее измененную копию в качестве результата. Если п принимает значение «g» или «G», изменить все соответствия. Если параметр t не задан, в качестве строки используется $0.
gensub
getline [var] [<file] command \ getline [var]
В первом случае данные читаются из файла (file) или из следующего по списку аргументов файла, а во втором - из вывода команды command. И в том и в другом случае getline за один раз считывает одну строку. Прочитанная строка записывается в переменную $0 и разбивается на поля, устанавливая переменные NF, NR и FNR. Если задана переменная var, результат чтения присваивается этой переменной, а значения $0 и NF не изменяются. Таким образом, если строка прочитана в переменную, текущая строка не изменяется. getline, по существу, является функцией и возвращает значения: 1 - при успешном чтении записи, 0 — по достижении символа EOF и -1, если чтение не было выполнено по какой -
либо другой причине.
getline
gsub
----------------------------------------------------- ^—.—-—,------------- —--- —- ¦-- "--
gsub (r, s, t)
Подставить s вместо всех соответствий регулярному выражению г в строке t. Вернуть количество подстановок. Если параметр t не задан, в качестве строки используется $0.
if
if (condition)
commandl [else
command2]
Если условие (condition) истинно, выполнить команду command!, иначе выполнить команду command2. Условие может быть выражением, включающим любые из операторов отношения (<, <=, ==, !=, >=, >), а также оператором соответствия шаблону ~. Последовательность команд должна заключаться в фигурные скобки.
Пример
В следующей строке сценария определяется, начинается ли первое слово каждой строки с буквы А или а.
if ($1 - /[Аа]*/) ...Начинается с А или а
index
index (substr,str)
Вернуть позицию начала подстроки в строке str. Если подстрока не содержится в строке, возвращается значение 0.
int
int (arg)
Вернуть целую часть аргумента arg.
length
length (arg)
Вернуть длину аргумента arg. Если аргумент опущен, в качестве строки используется значение переменной $0.
log
log (arg)
Вернуть натуральный логарифм аргумента (обратно ехр).
match
match (s, r)
Вернуть позицию начала первого соответствия регулярному выражению г в строке s либо 0, если соответствие не найдено.
Устанавливаются RLENGTH.
значения переменных RSTART
и
match
next
Прочитать следующую строку данных ввода и начать новый цикл операторов шаблон/процедура.
next
nextfile
Перейти к обработке следующего файла из перечисленных в командной строке gawk и начать новый цикл операторов шаблон/процедура.
nextfile
print [args] [destination]
Отобразить аргументы (args). Последовательности символов
должны заключаться в кавычки. Печать происходит в порядке перечисления аргументов. При печати разделенные запятыми аргументы разделяются символом, определяемым переменной OFS. Если аргументы разделены пробелами, при печати они выводятся слитно. Параметр destination является перенаправлением в стиле интерпретатора либо конвейерным выражением (например, это может быть >Ще)де-ренаправляющим стандартный вывод.
print
printf [format [, expressions]]
<< Назад В начало Далее >> |