Операторы сравнения в AWK

Операторы сравнения в AWK

Рубрики:

Linux, Терминал Linux

Метки:

,

Добро пожаловать в пятую статью по AWK! В этом скриптовом языке операторы сравнения играют важную роль при обработке и фильтрации данных. Они позволяют сравнивать значения полей, переменных и констант, и в зависимости от результата принимать решение о дальнейшей обработке данных. В этой статье мы рассмотрим наиболее часто используемые операторы сравнения в AWK, такие как >, <, ==.  А также покажем, как их комбинировать с другими функциями AWK, такими как printf, для более удобного форматирования вывода данных.

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

Содержание:

  1. Что такое операторы сравнения
  2. Использование операторов сравнения в AWK
    1. Применение оператора сравнения «>»
    2. Применение оператора сравнения «<»
    3. Использование оператора сравнения «==»
  3. Использование функции printf в AWK
  4. Выводы

Что такое операторы сравнения

Операторы сравнения — это символы, используемые для сравнения значений в языках программирования, математике и других средах. Они позволяют проверять равенство / неравенство величин или констант.

Вот список операторов сравнения, которые можно использовать в AWK:

  • == — равенство значений;
  • != — неравенство величин;
  • > — больше, чем;
  • < — меньше, чем;
  • >= — больше или равно;
  • <= — меньше или равно.

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

Для демонстрации фильтрации содержимого текста с помощью операторов сравнения создадим файл 1.txt, в котором запишем в первом столбце имена студентов, во втором — количество выполненных ими работ, в третьем — среднюю оценку:

 

cat file

Применение оператора сравнения «>»

Рассмотрим первый оператор сравнения — >. Допустим, нам нужно вывести на экран все строки, которые содержат во втором поле числа больше, чем 22. Для этого напишем следующую команду в терминале:

 

awk strong-greater

Синтаксис команды:

  1. awk — команда, которая вызывает интерпретатор AWK для обработки входных данных.
  2. '$2 > 22 {print $0}' — скрипт, который будет применен к каждой строке входных данных:
    • $2 — означает второе поле текущей строки;
    • > 22 — условие, указывающее интерпретатору, что нужно обрабатывать только те значения, которые строго  больше 22;
    • {print $0} — печатает всю строку целиком (с помощью $0).
  3. 1.txt — имя файла.

Применение оператора сравнения «<»

В этом разделе покажем Вам, как использовать знак «меньше, чем». Все также будем работать с файлом 1.txt. Выведем на экран строки, которые содержат во втором поле числа меньше, чем 22. Для этого нам потребуется немного изменить предыдущую команду:

 

awk strong-less

Важно: при замене одного оператора сравнения другим вывод в терминале полностью меняется.

 

Использование оператора сравнения «==»

Последний оператор сравнения, который мы сегодня будем использовать — == (равно). Для примера продолжим обрабатывать величины, находящиеся во втором поле каждой строки текстового документа. Чтобы вывести на экран те строки, значения которых во втором поле равно 30 — напишем эту команду:

 

equals sign

Использование функции printf в AWK

Во всех предыдущих примерах мы выводили на экран выводили неотформатированные строки. Чтобы привести таблицу в более читабельный вид, будем использовать функцию printf. Она позволяет задавать шаблон вывода, в который могут быть вставлены значения переменных. Давайте научимся применять ее на практике:

 

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 с трудоустройством!

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


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

Свежие комментарии

Меню