AWK: различия между версиями

[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
→‎Преамбула: 1) интерпретируемость — не неотъемлимая отличительная черта; 2) bash — частный случай
Нет описания правки
Строка 9:
|implementations = awk, GNU Awk, mawk, nawk, MKS AWK, Thompson AWK (компилятор), Awka (компилятор)
|dialects = ''old awk'' oawk 1977, ''new awk'' nawk 1985, ''GNU Awk'' gawk
|influenced_by = [[C (язык программирования)|C]], [[Снобол|SNOBOL]]4, [[Bourne shell]]
|influenced = [[Perl]]<!--1987-->, [[Korn Shell]] (''ksh93''<!--1993-->, ''dtksh'', ''tksh''), [[Lua]]<!--1993-->
}}
'''AWK''' — [[C-подобный синтаксис|C-подобный]] [[скриптовый язык]] построчного разбора и обработки входного потока (например, текстового файла) по заданным шаблонам ([[Регулярные выражения|регулярным выражениям]]). Может использоваться в [[Сценарий командной строки|сценариях командной строки]].
 
Название AWK складывается из инициалов разработчиков языка: [[Ахо, Альфред|Alfred V. '''A'''ho]], {{не переведено 3нп5|Вайнбергер, Питер|Peter J. '''W'''einberger||Peter J. Weinberger}} и [[Керниган, Брайан Уильям|Brian W. '''K'''ernighan]]. Первая версия AWK была написана в [[1977 год]]у в [[Bell Labs|AT&amp;T Bell Laboratories]].
 
== Структура программы ==
Строка 24:
. . .
 
Каждая запись поочерёдно сравнивается со всеми шаблонами, и каждый раз, когда она соответствует шаблону, выполняется указанное действие. Если ''шаблон'' не указан, то ''действие'' выполняется для любой записи. Если не указано ''действие'', то запись выводится. В AWK также существует 2 предопределённых шаблона '''BEGIN''' и '''END'''. BEGIN выполняется до начала обработки входного потока. END — после обработки последней записи входного потока.
 
''Действие'' может состоять из последовательности операторов, разделяемой точкой с запятой, переводом строки или закрывающей скобкой.
Строка 52:
 
==== for (индексная форма) ====
Цикл for в форме, ориентированной на обработку [[ИндексныйМассив массив(программирование)|индексных массивов]], имеет вид:
for(секция инициализации;секция условия;секция обновления итератора){
Тело цикла
Строка 72:
| ARGV || Массив аргументов командной строки || -
|-
| ENVIRON || Массив, содержащий [[Переменная среды|переменные окружения]] || -
|-
| FILENAME || Обрабатываемый входной файл || -