방대한 이메일 목록에서 고유한 발신자를 찾아냅니다.

방대한 이메일 목록에서 고유한 발신자를 찾아냅니다.

방금 Centos /home/user/mail/new의 내 사용자 계정에서 방대한 이메일 목록을 발견했습니다.

그 중 일부를 열어보니 특정 크론 작업에서 전송된 것임을 확인했습니다. 보낸 사람 주소는 입니다 [email protected]. 이 이메일을 모두 보낸 사람인지 확인해야 합니다 [email protected]. 이메일 용량은 약 30GB입니다. 보낸 사람 주소의 고유한 목록을 파악하는 방법이 있나요? 이메일의 형식은 다음과 같습니다.

복귀 경로:

봉투 수신처:[이메일 보호됨]

배송일 : 2011년 8월 11일 (목) 04:34:02 -0400

수신: 로컬을 사용하여 호스트 이름.com으로 사용자로부터(Exim 4.69)

(봉투에서 )

ID 1QrQiI-0004qM-6V

~을 위한[이메일 보호됨]; 2011년 8월 11일 (목) 04:34:02 -0400

에서:[이메일 보호됨](크론 데몬)

에게:[이메일 보호됨]

제목: 크론 /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

루트에서 이메일 수를 얻으려면 다음을 실행하십시오.

grep ^From /home/user/mail/new | 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

관련 정보