我有一个 mbox 格式的大邮箱。这是所有文章,因此标题信息不相关(日期除外)。
我想要的是获取我的大 *.mbx 文件并生成文本文件,其中文件名是每封电子邮件的主题,并且所有标题都被删除。
我认为 AWK 可以用正则表达式做到这一点,但这种事情不是我的专业领域(更多的是 gui 人)。
我希望我可以将硬盘上的文件保存在更少的磁盘空间中,并最终可以使用 Google 桌面搜索进行索引。
任何帮助表示赞赏。
这里的关键是将记录分隔符变量设置为空字符串。这将以“段落”模式读取文件。
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
如果您有相同主题的电子邮件,则邮件正文将连接到一个文件中。
我不希望看到这会节省大量的磁盘使用量。您将删除标头,但会增加所需的磁盘块数。