grep извлечь уникальных отправителей из огромного списка адресов электронной почты

grep извлечь уникальных отправителей из огромного списка адресов электронной почты

Я только что нашел огромный список адресов электронной почты в моей учетной записи пользователя в Centos /home/user/mail/new

Я открыл некоторые из них и заметил, что они были отправлены из определенного задания cron. Адрес From — [email protected]. Мне нужно выяснить, были ли все эти письма отправлены [email protected]- Это около 30 ГБ электронной почты. Есть ли способ получить список уникальных адресов From? Формат письма примерно такой:

Обратный путь:

Конверт-кому:[email protected]

Дата доставки: Чт, 11 Авг 2011 04:34:02 -0400

Получено: от пользователя по hostname.com с локальной (Exim 4.69)

(конверт-от)

идентификатор 1QrQiI-0004qM-6V

для[email protected]; Чт, 11 авг 2011 04:34:02 -0400

От:[email protected](Крон Демон)

К:[email protected]

Тема: Cron /opt/gsn/reports/pr.sh

Тип содержимого: текст/обычный; кодировка=UTF-8

Автоматически отправлено: автоматически сгенерировано

Идентификатор сообщения:

Дата: Чт, 11 авг 2011 04:34:02 -0400

[СОДЕРЖАНИЕ СООБЩЕНИЯ]

решение1

$ grep -E '^From:' /some/file | uniq

решение2

Чтобы получить общее количество писем, выполните:

grep Из: /home/user/mail/new | wc -l

чтобы получить количество писем от root, запустите это

grep ^Из /home/user/mail/new | grep root\@hostname.com | wc -l

сейчас (Всего писем) - (письма от root) = фактическое количество писем из общего числа писем.

решение3

Попробуй это:

awk '/^From: / { print $2 }' /home/user/mail/new | sort | uniq -c | sort -rn

Это не один файл, каждое письмо весит около 20 Кб, а общий размер писем составляет 30 Гб.

awk '/^From: / { print $2 }' /home/user/mail/* | sort | uniq -c | sort -rn

Связанный контент