從大量電子郵件清單中找出唯一的寄件者

從大量電子郵件清單中找出唯一的寄件者

我剛剛在 Centos /home/user/mail/new 的用戶帳戶下發現了一個巨大的電子郵件列表

我打開其中一些,發現它們是從特定的 cron 作業發送的。寄件者地址是[email protected].我需要找出所有這些電子郵件是否都是由[email protected]- 大約 30GB 的電子郵件發送的。有沒有辦法 grep 出唯一的寄件者地址清單?電子郵件的格式是這樣的:

返迴路徑:

信封至:[電子郵件受保護]

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

收到:來自主機名稱.com 的本機使用者(Exim 4.69)

(信封-來自)

編號 1QrQiI-0004qM-6V

為了[電子郵件受保護]; 2011 年 8 月 11 日星期四 04:34:02 -0400

從:[電子郵件受保護](克朗守護程式)

到:[電子郵件受保護]

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

內容類型:文字/純文字;字符集=UTF-8

自動提交:自動生成

訊息 ID:

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

【留言內容】

答案1

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

答案2

若要取得電子郵件總數,請執行:

grep 來自:/home/user/mail/new |廁所-l

若要取得來自 root 的電子郵件計數,請執行此命令

grep ^來自 /home/user/mail/new | grep root\@hostname.com | grep root\@hostname.com |廁所-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

相關內容