2012-09-06 46 views
4

我在一个文件夹中有多个文件,每个文件都有一个电子邮件。每封邮件都有一个标题格式为Bash,从包含电子邮件的文本文件中获取电子邮件正文

Subject: formatting fonts 
To: [email protected] 
From: sender 

email body 

我该如何得到身体?我可以通过诸如“read XX”之类的东西来获得这个主题.. 由于没有像“Body:”这样的标签,我现在无法获得电子邮件正文

任何帮助将不胜感激。

回答

8

你想要的只是第一段。 sed可以这样做:

sed '1,/^$/d' file.txt 

什么它说的是 - 创业之初,(1)进入到第一线这是空白(^$ - 已开始^和结束$之间没有任何东西),并删除它(d)。

1

电子邮件的标题和正文总是由一个空行分隔。您需要阅读(并忽略)所有行,直到看到空白行。文件的其余部分是正文。

+0

根据RFC 2822,我可能会添加。 – g33kz0r

0

此解决方案使用pcregrep并匹配主题,来自行和来自行,然后获取该匹配的反转。

pcregrep -M -v 'Subject.*\nTo.*\nFrom.*\n' file.txt 
0

管消息分成:所述的procmail包的

| formail -I '' 

一部分。

相关问题