Проверка адресов электронной почты с помощью JQ

Компьютерная безопасность icon

В этой статье я расскажу о полезной однострочной команде, которая может выполнить следующие действия: прочитать текстовый файл с email-адресами из stdin, проверить их валидность и сгенерировать JSON-вывод с результатами в stdout. JSON — это популярный формат для API, поэтому умение генерировать JSON-вывод весьма полезно.

Еще по теме: Библиотеки Python для хакеров и безопасников

Быстрая обработка почты с помощью JQ

Вот эта однострочная команда, которая выполняет всю работу. Может показаться сложной, но на самом деле это не так. Я объясню все, что вам нужно знать:

Файл emails.txt содержит email-адреса. Вот пример его содержимого:

Разберем команду по частям:

  • jq -Rn — обрабатывает ввод как обычные строки, а не JSON, каждая строка — отдельная строка. -n запускает jq с нулевым вводом, позволяя создать JSON-вывод.
  • inputs — это фильтр, который читает все строки ввода из stdin. Внешние скобки [] указывают на создание массива объектов.
  • {"email": ., "valid": } — генерирует JSON-объект для каждого проверяемого email. Значение valid будет сгенерировано функцией «test», которая проверяет валидность адреса с помощью регулярного выражения.
  • test() — содержит регулярное выражение для проверки валидности email.
  • ^[a-zA-Z0-9._%+-]+ — соответствует началу строки с одним или более допустимыми символами перед символом @.
  • @[a-zA-Z0-9.-]+ — соответствует символу @, за которым следуют один или более допустимых символов для домена.
  • \\. — соответствует точке. Обратный слеш \\ используется для экранирования точки в регулярном выражении.
  • [a-zA-Z]{2,}$ — соответствует домену верхнего уровня, который должен иметь не менее двух символов.
  • ? — гарантирует, что test вернет false вместо ошибки, если ввод не соответствует регулярному выражению.

Теперь давайте выполним нашу команду для файла email.txt. Как видите она генерирует очень красивый и читаемый JSON-вывод для каждого email:

jq — это мощный инструмент, как grep для JSON-файлов. Он может делать много разных вещей и особенно полезен, когда нужно быстро выполнить проверки. В следующей статье я покажу пример использования px-1 py-px text-[0.9rem]"]inotify для запуска выполнения скрипта при создании файла.

ПОЛЕЗНЫЕ ССЫЛКИ:

Falcon

Я не ломаю системы, я их закаляю и пишу статьи на спайсофте с 2011. Новые статьи в Телеграме.

Добавить комментарий