Bash,从包含电子邮件的文本文件中获取电子邮件正文

时间:2012-09-06 22:18:56

标签: bash email unix

我在一个文件夹中有多个文件,每个文件都有一封电子邮件。每条消息都有一个格式为

的标题
Subject: formatting fonts 
To: XXX@XXX.COM 
From: sender 

email body

我怎样才能得到身体?我可以通过类似“阅读XX”的内容来获取主题。 由于没有像“Body:”这样的标签,我现在无法获得电子邮件正文

任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:8)

除了第一段,你想要的一切。 sed可以执行此操作:

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

它说的是 - 从头开始​​,(1)转到第一行是空白的(^$ - 在开头^和结尾{{之间没有任何内容1}})并删除它($)。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

此解决方案使用pcregrep并匹配主题,行和行,然后得到该匹配的反转。

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

答案 3 :(得分:0)

将邮件传递到:

SAPUI version 1.36.8

procmail包的一部分。