从大量的电子邮件中挑出独特的发件人

我只是在Centos / home / user / mail / new中的用户帐户下find了一大堆电子邮件

我打开了他们中的一些,发现他们是从一个特定的cron工作发出的。 发件人地址是[email protected] 。 我需要找出所有这些电子邮件是否由[email protected]发送 – 这是约30GB的电子邮件。 有没有一种方法来刷出一个唯一的发件人列表的列表? 电子邮件的格式是这样的:

返回path:

信封到:[email protected]

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

收到:从本地用户hostname.com(Exim 4.69)

(信封来自)

id 1QrQiI-0004qM-6V

[email protected]; 星期四,11八月2011 04:34:02 -0400

来自:[email protected](Cron守护进程)

致:[email protected]

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

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

自动提交:自动生成

邮件ID:

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

[信息内容]

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

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

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

从根目录获得电子邮件的数量,运行这个

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

现在(总电子邮件) – (来自根目录的电子邮件)=总电子邮件的实际电子邮件数量。

尝试这个:

 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