![명령줄을 통해 Thunderbird 메일 파일에서 고유한 보낸 사람 목록 만들기](https://linux55.com/image/43391/%EB%AA%85%EB%A0%B9%EC%A4%84%EC%9D%84%20%ED%86%B5%ED%95%B4%20Thunderbird%20%EB%A9%94%EC%9D%BC%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EA%B3%A0%EC%9C%A0%ED%95%9C%20%EB%B3%B4%EB%82%B8%20%EC%82%AC%EB%9E%8C%20%EB%AA%A9%EB%A1%9D%20%EB%A7%8C%EB%93%A4%EA%B8%B0.png)
저는 큰 메일함을 가지고 있고 Thunderbird를 사용합니다. 즉, 파일이 여러 개 있다는 의미입니다 mbox
. 이러한 개별 파일에는 특정 폴더의 모든 이메일이 포함되어 있습니다. 이제 특정 폴더에서 보낸 사람의 일부 데이터를 가져오고 싶습니다. 내 이상적인 통계는 모든 고유한 보낸 사람과 해당 폴더에 보낸 사람의 이메일이 몇 번이나 있는지 확인하는 것입니다. 가장자리:
- 존 A: 10x
- 마리아 B: 5배
등.
몇 가지 옵션을 시도했지만 grep
'From:'을 grep하면 X 헤더도 표시되고 다른 헤더를 제외하는 방법을 잘 모르겠습니다. 명령줄에서 이 작업을 수행할 수 있는지 아는 사람이 있습니까?
답변1
먼저, 헤더를 안정적으로 가져와야 하며 From
, 이는 제한적인 grep 정규식을 사용하여 수행할 수 있습니다.
% grep --no-filename --ignore-case '^From:' test.eml
From: [email protected]
다음으로 발생 횟수를 계산해야 합니다. 이는 다음과 같이 수행할 수 있습니다.uniq -c
(정렬된 목록이 필요합니다).
% grep --no-filename --ignore-case '^From:' *.eml | sort | uniq --count
1 From: [email protected]
3 From: [email protected]
그런 다음 가장 빈번한 항목이 맨 위에 표시되도록 출력을 발생 횟수별로 정렬할 수 있습니다.
% grep --no-filename --ignore-case '^From:' *.eml | sort | uniq --count | sort --general-numeric-sort --reverse
3 From: [email protected]
1 From: [email protected]