AWK - это интерпретируемый язык программирования (AWK расшифровывается как Aho, Weinberger, Kernighan), разработанный для обработки текста и обычно используемый в качестве инструмента извлечения данных и составления отчетов. AWK в основном используется в системах Unix.

AWK - это интерпретируемый язык программирования (AWK расшифровывается как Aho, Weinberger, Kernighan), разработанный для обработки текста и обычно используемый как инструмент для извлечения данных и создания отчетов Это стандартная функция большинства Unix-подобных операционных систем.

Источник: Википедия.

Программа awk представляет собой серию пар шаблон-действие, написанных как:

condition { action }
condition { action }
...

Где условие обычно является выражением, а действие - серией из одной или нескольких команд, разделенных точкой с запятой ;. Ввод разделен на записи, по умолчанию разделенные символом новой строки, и обрабатываются на основе записи (по умолчанию построчно). Для каждой записи проверяется каждое условие и, если оно истинно, выполняется блок действия. Если условие отсутствует, блок действия будет выполнен. Если условие присутствует, но блок действия отсутствует, действие по умолчанию - print $0, которое должно напечатать текущую строку после любых преобразований. Поскольку ненулевое число эквивалентно true, то awk '1' file инструктирует awk выполнить действие по умолчанию (print) для каждой строки.

Awk может иметь необязательный BEGIN и необязательный END, где действие BEGIN вызывается перед чтением любого ввода, а действие END вызывается после прочтения всего ввода:

BEGIN     { action } 
condition { action }
condition { action }
...
END       { action }

Awk был первоначально разработан Альфредом Ахо, Брайаном Керниганом и Питером Вайнбергером в 1977 году и обновлен в 1985 году. С тех пор появились различные версии и диалекты awk. Наиболее распространенными являются:

  • awk - наиболее распространенный и встречается на большинстве Unix-подобных систем. Он также имеет четко определенный стандарт IEEE.
  • mawk - быстрая реализация AWK, основа кода которой основана на интерпретаторе байт-кода.
  • nawk - во время разработки AWK разработчики выпустили новую версию (новый awk), чтобы избежать путаницы, но она сама по себе очень старая и ей не хватает функциональности, присутствующей во всех awks POSIX.
  • gawk - также известный как GNU awk. Единственная версия, в которой разработчики пытались добавить поддержку i18n. Позволял пользователям писать свои собственные совместно используемые библиотеки C, чтобы расширять их с помощью своих собственных «плагинов». Эта версия является стандартной реализацией для Linux.

Задавая вопросы об обработке данных с использованием awk, укажите полный ввод и желаемый вывод.

Некоторые часто встречающиеся темы:

Книги:

Ресурсы:

Другие ресурсы StackExchange:

Связанные теги: