1

我有一个 mbox 格式的大邮箱。这是所有文章,因此标题信息不相关(日期除外)。

我想要的是获取我的大 *.mbx 文件并生成文本文件,其中文件名是每封电子邮件的主题,并且所有标题都被删除。

我认为 AWK 可以用正则表达式做到这一点,但这种事情不是我的专业领域(更多的是 gui 人)。

我希望我可以将硬盘上的文件保存在更少的磁盘空间中,并最终可以使用 Google 桌面搜索进行索引。

任何帮助表示赞赏。

4

1 回答 1

1

这里的关键是将记录分隔符变量设置为空字符串。这将以“段落”模式读取文件。

awk -v RS="" '
    /^From / {
        # this $0 contains the email headers, grab the subject
        subject = "no subject"
        split($0, headers, /\n/)
        for (idx in headers)
            if (headers[idx] ~ /^Subject: /) {
                subject = headers[idx]
                sub(/^Subject: /, "", subject)
            }

        next
    }
    { print > subject}
' large.mbox

如果您有相同主题的电子邮件,则邮件正文将连接到一个文件中。

我不希望看到这会节省大量的磁盘使用量。您将删除标头,但会增加所需的磁盘块数。

于 2012-03-21T18:21:14.293 回答