在邮箱grep的垃圾邮件标记的邮件
问题描述:
大家好,我需要从多个邮箱一些帮助...... 我必须清理(删除)垃圾邮件所以我必须找到它。邮件标题由不同的反垃圾邮件工具标记,所以有一些标签,如垃圾邮件,[垃圾邮件],***垃圾邮件***等,所以我必须找到所有标签与这个“关键字”的消息。在邮箱grep的垃圾邮件标记的邮件
样品主题是:*** SPAM ***购买伟哥
我知道文件名和grep -E或者egrep的正则表达式为grep的-l。
grep -E "^Subject: \[SPAM\]"
grep -E "^Subject: \*\*\*SPAM\*\*\*"
grep -E "^Subject: \*\*\*\ SPAM\ \*\*\*" # (1 space before and after SPAM word)
如何把工作在一条线上? 我用grep和替换“|”像
"^Subject: (\[SPAM\]|\*\*\*SPAM\*\*\*|\*\*\*\ SPAM\ \*\*\*)"
但工作不好。
在一个文件中有一条消息,因此许多文件等于许多消息。文件的内容是这样的:
From: Sender <[email protected]>
To: Receiver <[email protected]>
Subject: *** SPAM *** Buy viagra on-line
所以我只需要在主题行的grep。就这样。
答
一般的正则表达式将是 -
^Subject:\W*SPAM(?:\W|$)
答
这种模式应该工作:
grep -E '^Subject: [* []+SPAM[] *]+'
通过使用它消除了使用|
或陈述,需要的字符类。
输入:
Subject: [SPAM]
Subject: SPAM // shouldn't match
Subject: ***SPAM***
Subject: *** SPAM ***
Subject: Not Spam // shouldn't match
Subject: ** SPAM **
输出:
Subject: [SPAM]
Subject: ***SPAM***
Subject: *** SPAM ***
Subject: ** SPAM **
这不会删除任何东西,因此你可能要包括关于你的最终结果应该是更多信息。 – 2014-10-18 18:56:59
我编辑了我的文章 - 只有如何在主题中使用grep垃圾邮件,我不需要准备好使用的脚本:-) – Nieogolony 2014-10-18 19:00:35
您可以明确指出邮箱的格式吗? [邮箱文件(单个文件中的许多邮件),maildir,mh文件夹]您更喜欢哪种脚本语言? [perl,python] – AnFi 2014-10-18 19:06:27