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)
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