В скриптовом языке AWK можно использовать переменные, числовые выражения и операторы присваивания для более гибкой и удобной фильтрации данных. Они позволяют работать с информацией и изменять ее содержимое в процессе выполнения программы обработки. В этой статье мы рассмотрим примеры использования этих возможностей AWK на практике.
Также советуем ознакомиться с восьмой статьей из цикла: Считывание стандартного вывода в AWK.
Содержимое:
Переменные в AWK
Переменные в AWK нужны для хранения значений, которые могут применяться в процессе выполнения кода. Синтаксис объявления переменной выглядит следующим образом:
Покажем Вам несколько примеров:
Для присваивания значения переменной в AWK используется оператор =. К примеру, запишем в переменную var первое поле каждой строки из файла students.txt и выведем ее значение на экран:
У Вас есть возможность присвоить значение переменной из стандартного вывода, используя конвейер. Например, выполним команду uname для вывода информации о системе, а затем с помощью awk извлечем второе поле (имя хоста) и сохраним его в переменной var:
Подробнее о синтаксисе данной команды:
uname -a— команда, которая выводит информацию о системе;|— конвейер, передающий вывода команды слева как ввод команды справа;'{var=$2 ; print var;}'— присваивает значение второго поля ($2) переменнойvarи выводит его на экран с помощью командыprint.
Числовые выражения в AWK
Одним из инструментов для обработки текста являются числовые выражения. Они позволяют совершать математические операции над числами, находящимися в файле. Для числовых выражений в AWK существуют арифметические операторы, такие как:
+— сложение;-— вычитание;*— умножение;/— деление;%— остаток от деления.
Числовые выражения могут использоваться для подсчета количества строк в файле, вычисление суммы чисел и т.д.
Например, нам нужно вычислить среднее значение чисел второго поля всех строк в файле. Для решения этой задачи выполним приведенную ниже команду:
Данный код работает следующим образом:
- Для каждой строки язык сценариев добавляет значение из второго столбца к переменной
sumи увеличивает счетчикcountна 1. - По достижении конца файла AWK выполняет блок кода
END, который вычисляет среднее значение как сумму всех чисел (sum) во втором столбце, разделенную на количество строк (count). - Результат направляется в стандартный вывод с помощью оператора
print.
Операторы присваивания в AWK
Операторы присваивания хранят значение в объекте, заданном левым операндом. В AWK существует несколько операторов присваивания:
=— присваивает значение переменной;+=— увеличивает значение переменной на заданное число;-=— уменьшает значение переменной на заданное число;*=— умножает значение первого операнда на значение второго операнда;/=— делит значение первого операнда на значение второго операнда.
Для примера выведем на экран сумму всех чисел второго столбца файла students.txt:
Также с помощью операторов присваивания можно изменять значения полей файла. Допустим, нам нужно увеличить число во втором поле каждой строки на 1 и сохранить изменения в новый файл:

Данный код использует оператор присваивания += для увеличения значения второго поля каждой строки файла на 1. Затем он выводит измененные строки на экран с помощью команды print и перенаправляет результат в новый файл students_new.txt.
Выводы
В статье мы рассмотрели важные инструменты языка AWK — использование переменных, числовых выражений и операторов присваивания. Было показано, как с помощью этих возможностей производить различные вычисления и манипуляции с данными внутри файла. Также были приведены примеры использования каждой из этих операций на практике.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.



























