Как использовать команду next в AWK

Как использовать команду next в AWK

Рубрики:

Linux, Терминал Linux

Метки:

,

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

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

Содержание:

  1. Что такое оператор next
  2. Использование next в AWK
    1. Применение next в комбинации с if
    2. Использование next в составных выражениях AWK
  3. Выводы

Что такое оператор next

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

Использование next в AWK

Перед тем, как перейти к примерам — создадим файл, который будет обрабатываться — students.txt. В нем запишем имена студентов, количество сданных ими работ и средние оценки:

 

cat-file

 

Применение next в комбинации с if

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

К примеру, выведем на экран все строки файла, за исключением тех, в которых значение третьего поля равно C:

 

next if awk

Данный код выполняет следующее:

  1. При чтении каждой строки из файла students.txt проверяется значение в третьем столбце ($3).
  2. Если значение равно C, то выполняется оператор next, которая прерывает выполнение текущей итерации цикла и переходит к следующей.
  3. Если поле в третьем столбце не равно C, то выполняется команда print $0, которая выводит всю строку на экран.

Использование next в составных выражениях AWK

Оператор next может быть включен в любую часть составного выражения. Что позволяет более гибко настроить пропуск строку. Для примера выведем только те записи, где значение второго столбца больше 20, а величина третьего столбца равна A или B.

 

next в составных выражениях

Синтаксис указанной команды включает в себя несколько элементов:

  1. $2 > 20 — это условие, которое проверяет, больше ли второе поле чем 20.
  2. ($3 == "A" || $3 == "B") — это составное условие, которое проверяет, равно ли третье поле A или B.
  3. {print $0; next} — это действие, которое выполняется, если оба предыдущих условия сработали:
    • print $0 — выводит всю строку на экран;
    • next — пропускает оставшуюся часть скрипта и переходит к следующей строке файла.

Выводы

Мы рассмотрели основные способы использования оператора next, как в простых, так и в составных выражениях. Ее применение позволяет более эффективно фильтровать и обрабатывать данные, исключая из обработки ненужные записи.

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

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

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

Чтобы знать больше и выделяться знаниями среди толпы 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.
Вы должны согласиться с условиями для продолжения


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