我有一个mbox格式的大邮箱。这是所有文章,因此标题信息不相关(日期除外)。
我想要的是获取我的大* .mbx文件并生成文本文件,其中文件名是每封电子邮件的主题,并删除所有标题。
我认为AWK可以用正则表达式做到这一点,但这种事情不是我的专业领域(更多的是gui人)。
我希望我可以将文件保存在硬盘驱动器上的磁盘空间更少,最后可以使用Google桌面搜索进行索引。
任何帮助表示感谢。
答案 0 :(得分: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
如果您的电子邮件具有相同主题,则邮件正文将连接到一个文件中。
我不希望看到大量的磁盘使用量。您将删除标题,但增加所需的磁盘块数。