从大量电子邮件列表中查找唯一发件人

从大量电子邮件列表中查找唯一发件人

我刚刚在 Centos /home/user/mail/new 中的用户帐户下发现了一个巨大的电子邮件列表

我打开了其中一些邮件,发现它们是从一个特定的 cron 作业发送的。发件人地址是[email protected]。我需要查明所有这些电子邮件是否都是由[email protected]- 发送的。大约有 30GB 的电子邮件。有没有办法找出一串唯一的发件人地址列表?电子邮件的格式如下:

返回路径:

信封寄至:[电子邮件保护]

发货日期:2011 年 8 月 11 日星期四 04:34:02 -0400

已收到:来自 hostname.com 的用户,使用本地 (Exim 4.69)

(信封发件人)

编号 1QrQiI-0004qM-6V

为了[电子邮件保护]; 2011 年 8 月 11 日星期四 04:34:02 -0400

从:[电子邮件保护](Cron守护进程)

到:[电子邮件保护]

主题:Cron /opt/gsn/reports/pr.sh

内容类型:text/plain;字符集=UTF-8

自动提交:自动生成

消息 ID:

日期:2011 年 8 月 11 日星期四 04:34:02 -0400

[留言内容]

答案1

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

答案2

要获取电子邮件总数,请运行:

grep 来自:/home/user/mail/new | wc -l

要获取 root 的电子邮件数量,请运行此命令

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

现在(总电子邮件数)-(来自根的电子邮件数)= 总电子邮件中的实际电子邮件数。

答案3

尝试这个:

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

不是一个文件,每封邮件大概20K,总邮件有30G。

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

相关内容