通过命令行从 Thunderbird 邮件文件创建唯一发件人列表

Use*_*841 2 command-line email thunderbird

我有一些大邮箱并使用 Thunderbird,这意味着我有几个mbox文件。这些单个文件包含特定文件夹中的所有电子邮件。现在,我想在特定文件夹中获取有关发件人的一些数据。我理想的统计数据是获取所有唯一的发件人,以及他们的电子邮件在该文件夹中的次数。Ej:

  • 约翰 A:10 倍
  • 玛丽亚 B:5 倍

等等。

我已经尝试了一些grep选项,但如果我只 grep 'From:',我也会得到 X-headers,而且我不确定如何排除这些其他标题。有人知道这是否可以从命令行完成吗?

mgo*_*ven 5

首先,我们需要可靠地获取From标头,这可以通过限制性的 grep 正则表达式来完成。

% grep --no-filename --ignore-case '^From:' test.eml
From: mgorven@example.com
Run Code Online (Sandbox Code Playgroud)

接下来我们需要计算出现的次数,这可以用uniq -c(这需要一个排序列表)来完成。

% grep --no-filename --ignore-case '^From:' *.eml | sort | uniq --count
      1 From: mgorven@example.com
      3 From: mgorven@example.net
Run Code Online (Sandbox Code Playgroud)

然后我们可以按出现次数对输出进行排序,以在顶部获得最频繁的输出。

% grep --no-filename --ignore-case '^From:' *.eml | sort | uniq --count | sort --general-numeric-sort --reverse
      3 From: mgorven@example.net
      1 From: mgorven@example.com
Run Code Online (Sandbox Code Playgroud)