Добро пожаловать в пятую статью по AWK! В этом скриптовом языке операторы сравнения играют важную роль при обработке и фильтрации данных. Они позволяют сравнивать значения полей, переменных и констант, и в зависимости от результата принимать решение о дальнейшей обработке данных. В этой статье мы рассмотрим наиболее часто используемые операторы сравнения в AWK, такие как >
, <
, ==
. А также покажем, как их комбинировать с другими функциями AWK, такими как printf
, для более удобного форматирования вывода данных.
Также советуем ознакомиться с четвертой статьей из цикла: Фильтрация текста AWK по шаблону.
Содержание:
- Что такое операторы сравнения
- Использование операторов сравнения в AWK
- Использование функции printf в AWK
- Выводы
Что такое операторы сравнения
Операторы сравнения — это символы, используемые для сравнения значений в языках программирования, математике и других средах. Они позволяют проверять равенство / неравенство величин или констант.
Вот список операторов сравнения, которые можно использовать в AWK:
==
— равенство значений;!=
— неравенство величин;>
— больше, чем;<
— меньше, чем;>=
— больше или равно;<=
— меньше или равно.
Использование операторов сравнения в AWK
Для демонстрации фильтрации содержимого текста с помощью операторов сравнения создадим файл 1.txt
, в котором запишем в первом столбце имена студентов, во втором — количество выполненных ими работ, в третьем — среднюю оценку:
Применение оператора сравнения «>»
Рассмотрим первый оператор сравнения — >
. Допустим, нам нужно вывести на экран все строки, которые содержат во втором поле числа больше, чем 22. Для этого напишем следующую команду в терминале:
Синтаксис команды:
awk
— команда, которая вызывает интерпретатор AWK для обработки входных данных.'$2 > 22 {print $0}'
— скрипт, который будет применен к каждой строке входных данных:$2
— означает второе поле текущей строки;> 22
— условие, указывающее интерпретатору, что нужно обрабатывать только те значения, которые строго больше 22;{print $0}
— печатает всю строку целиком (с помощью$0
).
1.txt
— имя файла.
Применение оператора сравнения «<»
В этом разделе покажем Вам, как использовать знак «меньше, чем». Все также будем работать с файлом 1.txt
. Выведем на экран строки, которые содержат во втором поле числа меньше, чем 22. Для этого нам потребуется немного изменить предыдущую команду:
Важно: при замене одного оператора сравнения другим вывод в терминале полностью меняется.
Использование оператора сравнения «==»
Последний оператор сравнения, который мы сегодня будем использовать — ==
(равно). Для примера продолжим обрабатывать величины, находящиеся во втором поле каждой строки текстового документа. Чтобы вывести на экран те строки, значения которых во втором поле равно 30 — напишем эту команду:
Использование функции printf в AWK
Во всех предыдущих примерах мы выводили на экран выводили неотформатированные строки. Чтобы привести таблицу в более читабельный вид, будем использовать функцию printf
. Она позволяет задавать шаблон вывода, в который могут быть вставлены значения переменных. Давайте научимся применять ее на практике:
Данный код читает содержимое файла 1.txt
и выбирает строки, в которых второе поле больше 20. Затем он использует функцию printf
для получения отформатированного вывода — первого и второго полей выбранных строк.
Давайте подробно рассмотрим, из чего состоит выражение printf "%10s %10s\n", $1, $2
:
%10s
— спецификатор формата, который выводит поле с шириной в 10 символов;\n
— символ перевода строки, который обозначает конец текущей записи и перенос курсора на следующую.
Выводы
В этой статье мы показали Вам несколько примеров использования операторов сравнения, таких как «больше», «меньше» и «равно». Кроме того, продемонстрировали возможности функции printf
в сочетании с этими операторами для вывода выбранных строк в более читабельном формате. Эта статья будет полезной для тех, кто работает с обработкой больших объемов данных в 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.