Suchen Sie aus einer riesigen Liste von E-Mails nach eindeutigen Absendern

Suchen Sie aus einer riesigen Liste von E-Mails nach eindeutigen Absendern

Ich habe gerade eine riesige Liste mit E-Mails unter meinem Benutzerkonto in Centos /home/user/mail/new gefunden

Ich habe einige davon geöffnet und festgestellt, dass sie von einem bestimmten Cron-Job gesendet wurden. Die Absenderadresse lautet [email protected]. Ich muss herausfinden, ob alle diese E-Mails von gesendet wurden [email protected]– Es sind etwa 30 GB E-Mails. Gibt es eine Möglichkeit, eine Liste eindeutiger Absenderadressen herauszusuchen? Das Format der E-Mail sieht ungefähr so ​​aus:

Der Weg zurück:

Umschlag an:[email geschützt]

Liefertermin: Do, 11. Aug. 2011 04:34:02 -0400

Empfangen: vom Benutzer über hostname.com mit lokal (Exim 4.69)

(Umschlag-von)

Nr. 1QrQiI-0004qM-6V

für[email geschützt]; Do, 11. August 2011, 04:34:02 -0400

Aus:[email geschützt](Cron-Daemon)

Zu:[email geschützt]

Betreff: Cron /opt/gsn/reports/pr.sh

Inhaltstyp: Text/Plain; Zeichensatz=UTF-8

Automatisch übermittelt: automatisch generiert

Nachrichten ID:

Datum: Do, 11. August 2011 04:34:02 -0400

[NACHRICHTENINHALT]

Antwort1

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

Antwort2

Um die Gesamtzahl der E-Mails zu erhalten, führen Sie Folgendes aus:

grep Von: /home/user/mail/new | wc -l

Um die Anzahl der E-Mails vom Root-Konto abzurufen, führen Sie Folgendes aus

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

jetzt (Gesamtzahl der E-Mails) – (E-Mails vom Stammverzeichnis) = tatsächliche Anzahl der E-Mails aus der Gesamtzahl der E-Mails.

Antwort3

Versuche dies:

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

Es handelt sich nicht um eine einzelne Datei. Jede E-Mail ist etwa 20 KB groß, die Gesamtzahl der E-Mails beträgt 30 GB.

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

verwandte Informationen