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

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

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

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

condition { action }
condition { action }
...

где условие обычно является выражением, а действие - серией из одной или нескольких команд, разделенных точкой с запятой.;характер. Ввод разбивается на записи, по умолчанию разделенные символом новой строки, и обрабатываются на основе записей (по умолчанию построчно). Для каждой записи проверяется каждое условие, и, если оно истинно, выполняется блок действия. Если условие отсутствует, блок действия будет выполнен. Если условие присутствует, но блок действий отсутствует, действие по умолчанию -print $0который должен печатать текущую строку после любых преобразований. Поскольку ненулевое число эквивалентно истине, то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 разработчики выпустили новую версию (new awk), чтобы избежать путаницы, но теперь она сама очень старая и не имеет функциональности, присутствующей во всех awk POSIX.
  • gawk - также известен как GNU awk. Единственная версия, в которой разработчики попытались добавить поддержку i18n. Разрешено пользователям писать свои собственные разделяемые библиотеки C для расширения их собственными "плагинами". Эта версия является стандартной реализацией для Linux.

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

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

Книги:

Ресурсы:

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

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

  • gawk (версия awk для GNU)
  • nawk (очень старая версия до POSIX, также от AT&T)
  • mawk (Другой интерпретатор, написанный Майком Бреннаном)
  • sed (родственный инструмент, который часто упоминается одновременно)