Написание скриптов в AWK

Написание скриптов в AWK

Рубрики:

Linux, Терминал Linux

Метки:

,

AWK — это язык сценариев, который широко используется для обработки текстовых файлов. Использование AWK-скриптов позволяет существенно упростить обработку крупных массивов текстовой информации. К примеру, Вы можете один раз написать программу, чтобы потом использовать ее для обработки разных документов. В этой статье мы рассмотрим основы написания скриптов AWK и приведем несколько практических примеров.

Также советуем ознакомиться с тринадцатой статьей из цикла: Как использовать условные операторы и циклы в AWK.

Содержание:

  1. Что такое скрипт
    1. Структура скриптов в AWK
    2. Как запустить скрипт в AWK
  2. Примеры скриптов в AWK
    1. Считывание данных из стандартного ввода
    2. Считывание данных с файла
  3. Использование циклов и условных операторов в скриптах AWK
  4. Выводы

Что такое скрипт

Скрипты в Linux — это текстовые файлы, содержащие команды для исполнения в терминале. Они позволяют автоматизировать выполнение повторяющихся задач и сократить затраты времени на решение рабочих задач. Скрипты могут быть написаны на различных языках программирования, в том числе AWK, и выполняются с помощью интерпретатора команд.

Структура скриптов в AWK

AWK-скрипт начинается со строки #! /usr/bin/awk -f. Она называется шебанг и является стандартной для запуска AWK-скриптов в ОС семейства GNU / Linux. Теперь давайте разберемся, зачем нужна такая строка в начале Вашего скрипта.

Шебанг (от англ. Shebang) — это конструкция, которая сообщает операционной системе, какой интерпретатор следует использовать для выполнения скрипта (в данном случае, awk). В этой строке есть несколько элементов:

  1. #! — указывает на то, что данная строка содержит команду для запуска скрипта.
  2. /usr/bin/awk — путь к исполняемому файлу интерпретатора awk, который будет использоваться для выполнения скрипта.
  3. -f — опция, которая указывает на то, что следующий аргумент — это имя файла со скриптом, который нужно выполнить.

После шебанга в скрипте следует код программы. Его общий синтаксис ее выглядит следующим образом:

 

Важно: ранее в этой статье (Как использовать блоки BEGIN и END в AWK) мы объясняли, что блоки BEGIN / END не обязательны для использования. Поэтому и в скрипте их можно не реализовывать.

 

Как запустить скрипт в AWK

Файлы со скриптами в AWK имеют расширение .awk. Прежде чем выполнить программу, Вы также должны установить для файла права на выполнение (Executable Permission):

 

Теперь Вы можете запускать программу. Существует два способа это сделать. Первый:

 

Второй:

 

Оба варианта дают одинаковый результат. И можно использовать любой на свой вкус.

Примеры скриптов в AWK

Как Вы уже знаете, язык сценариев активно используется для обработки данных. Чтобы написанный скрипт заработал, Вы должны передать ему необходимую для фильтрации какую-то информацию. Вы можете это сделать, используя:

  • стандартный ввод;
  • файл.

Приведем примеры программ для обоих способов.

Считывание данных из стандартного ввода

Чтобы передать информацию на стандартный ввод AWK — используйте конвейер. Например, напишем скрипт, который подсчитывает сумму чисел, записанных в строке:

 

script-sum awk

Далее выполним команду для запуска программы:

 

sum-exec

В этой конструкции:

  1. Команда echo выводит строку "10 20 30 40" в стандартный вывод.
  2. Конвейер | перенаправляет вывод из команды echo на стандартный ввод команды ./script.awk.
  3. Скрипт ./script.awk считает сумму чисел из строки.

Считывание данных с файла

Чтобы передать данные из файла скрипту AWK, введите в терминале:

 

Для примера напишем скрипт, который считает сумму чисел второго столбца файла students.txt:

 

script-second-field awk

Теперь запустим созданную программу:

 

second-field-exec

Использование циклов и условных операторов в скриптах AWK

Используя знания, полученные из нашего руководства по AWK, Вы сможете написать более сложные программы. Допустим, что нам нужно создать скрипт, который определяет среднее арифметическое чисел второго столбца из файла students.txt:

 

loops-script awk

Более детально опишем структуру AWK-программы, которая состоит из трех частей — BEGIN, основной код и END:

  1. BEGIN — здесь определяются переменные sum и count, им присваиваются начальные значения.
  2. Основной код — это часть, которая будет выполнена для каждой строки входных данных. Если второе поле строки больше нуля, то значения второго поля суммируются в переменной sum, а переменная count увеличивается на единицу.
  3. END — в этой части проверяется, что count больше нуля. Если это так, то вычисляется среднее значение второго поля и выводится сообщение с этим значением. Если же count равен нулю, то выводится сообщение о том, что нет действительных данных.

Запустим скрипт на исполнение:

 

loops-exec awk

Выводы

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

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, Терминал Linux

Метки:

,

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики
Меню