我剛剛在 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