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