В этой статье мы рассмотрим одну из самых полезных команд скриптового языка AWK — next
. Она позволяет перейти к следующей строке входных данных при заданных условиях, что помогает существенно ускорить обработку больших файлов и упростить работу с условиями в шаблонах. Мы подробно покажем, как использовать оператор next
в составных выражениях, и приведем примеры ее применения в работе с файлами.
Также советуем ознакомиться с шестой статьей из цикла: Как использовать составные выражения в AWK.
Содержание:
Что такое оператор next
Оператор next
в AWK прерывает текущую итерацию цикла, если та не соответствует заданному шаблону, и переходит к следующей строке входного файла. Утилита может использоваться в комбинации с логическими операторами и составными выражениями для создания более сложных итерационных конструкций.
Использование next в AWK
Перед тем, как перейти к примерам — создадим файл, который будет обрабатываться — students.txt
. В нем запишем имена студентов, количество сданных ими работ и средние оценки:
Применение next в комбинации с if
Комбинирование команды next
с оператором if
позволяет создавать более сложные скрипты, в которых определенные строки могут быть пропущены в зависимости от установленных условий. Применение этой комбинации особенно полезно, когда входной файл содержит большое количество информации. В ней оператор if
используется для проверки строки на соответствие заданному условию, и если оно не выполнено — оператор next
перейдет к обработке следующей записи.
К примеру, выведем на экран все строки файла, за исключением тех, в которых значение третьего поля равно C
:
Данный код выполняет следующее:
- При чтении каждой строки из файла
students.txt
проверяется значение в третьем столбце ($3
). - Если значение равно
C
, то выполняется операторnext
, которая прерывает выполнение текущей итерации цикла и переходит к следующей. - Если поле в третьем столбце не равно
C
, то выполняется командаprint $0
, которая выводит всю строку на экран.
Использование next в составных выражениях AWK
Оператор next
может быть включен в любую часть составного выражения. Что позволяет более гибко настроить пропуск строку. Для примера выведем только те записи, где значение второго столбца больше 20, а величина третьего столбца равна A
или B
.
Синтаксис указанной команды включает в себя несколько элементов:
$2 > 20
— это условие, которое проверяет, больше ли второе поле чем 20.($3 == "A" || $3 == "B")
— это составное условие, которое проверяет, равно ли третье полеA
илиB
.{print $0; next}
— это действие, которое выполняется, если оба предыдущих условия сработали:print $0
— выводит всю строку на экран;next
— пропускает оставшуюся часть скрипта и переходит к следующей строке файла.
Выводы
Мы рассмотрели основные способы использования оператора next
, как в простых, так и в составных выражениях. Ее применение позволяет более эффективно фильтровать и обрабатывать данные, исключая из обработки ненужные записи.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы 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.