我有一些大型邮箱并使用 Thunderbird,这意味着我有多个mbox
文件。这些单个文件包含特定文件夹中的所有电子邮件。现在,我想获取特定文件夹中发件人的一些数据。我理想的统计数据是获取所有唯一的发件人,以及他们的电子邮件在该文件夹中的次数。埃杰:
- 约翰 A:10x
- 玛丽亚乙:5x
ETC。
我尝试了一些grep
选项,但如果我仅 grep 'From:',我也会得到 X-headers,并且我不确定如何排除这些其他标头。有人知道这是否可以从命令行完成吗?
答案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]