我们使用大量常见垃圾邮件发送者短语列表作为垃圾邮件过滤系统的一部分。电子邮件主题或邮件正文中的任何匹配项都会使其直接进入我们的 Office 365 托管隔离区。
今天,我注意到我们的第一个误报被发送到托管隔离区。我想找出哪些单词或短语与短语列表中的某些内容相匹配,以便我可以将其从列表中删除,但找不到它(由于我们现在列表中有大量关键字和短语)。
目前所有内容都在记事本文档中。我考虑过使用 Beyond Compare,但不知道它在这种情况下如何工作。
如何突出显示原始消息和关键字/短语列表之间的匹配?
答案1
如果每个关键短语都在单独的行上,那么最简单的方法是使用批处理文件:
@echo off
(for /F "tokens=*" %%i in (keywords.txt) do findstr /C:"%%i" /N /I message.txt) > result.txt
另存为filter.bat
并从命令行运行。keywords.txt
是带有关键字的文件名,例如
spammer1
spammer2
mr. spammer3
并且message.txt
应该包含以下信息:
Hi, I am spammer2. Give me money
regards,
Mr. spammer3
脚本运行后,匹配的行号将会输出在results.txt
:
1:Hi, I am spammer2. Give me money
4:Mr. spammer3