我在一个文件夹中有多个文件,每个文件都有一个电子邮件。每封邮件都有一个标题格式为Bash,从包含电子邮件的文本文件中获取电子邮件正文
Subject: formatting fonts
To: [email protected]
From: sender
email body
我该如何得到身体?我可以通过诸如“read XX”之类的东西来获得这个主题.. 由于没有像“Body:”这样的标签,我现在无法获得电子邮件正文
任何帮助将不胜感激。
我在一个文件夹中有多个文件,每个文件都有一个电子邮件。每封邮件都有一个标题格式为Bash,从包含电子邮件的文本文件中获取电子邮件正文
Subject: formatting fonts
To: [email protected]
From: sender
email body
我该如何得到身体?我可以通过诸如“read XX”之类的东西来获得这个主题.. 由于没有像“Body:”这样的标签,我现在无法获得电子邮件正文
任何帮助将不胜感激。
你想要的只是第一段。 sed
可以这样做:
sed '1,/^$/d' file.txt
什么它说的是 - 创业之初,(1
)进入到第一线这是空白(^$
- 已开始^
和结束$
之间没有任何东西),并删除它(d
)。
电子邮件的标题和正文总是由一个空行分隔。您需要阅读(并忽略)所有行,直到看到空白行。文件的其余部分是正文。
此解决方案使用pcregrep
并匹配主题,来自行和来自行,然后获取该匹配的反转。
pcregrep -M -v 'Subject.*\nTo.*\nFrom.*\n' file.txt
管消息分成:所述的procmail包的
| formail -I ''
一部分。
根据RFC 2822,我可能会添加。 – g33kz0r