grep通配符里面的文件

时间:2014-06-09 18:19:11

标签: grep wildcard

我使用以下代码在我的邮件服务器上过滤垃圾邮件:

if 822field from | grep -qiFf "/email_filters/from.txt"; then exit 99; fi

还有:

if 822field subject | grep -qiFf "email_filters/bad_subject.txt"; then exit 99; fi

在上述两个文件中,我有SPAM电子邮件来源和主题(例如辉瑞,cialis,伟哥等)的列表,每个都在文本文件中的各个行中。

如何在文件中包含通配符?例如,我最近开始收到假的美国邮政服务通知 status_38@unikmetal.ru“,所以我想阻止”@ _ .ru“。

1 个答案:

答案 0 :(得分:1)

-F添加到grep时,它会处理固定字符串而不是正则表达式。要使用通配符,我必须使用正则表达式。

删除-F命令

中的grep
grep -qif "/email_filters/from.txt"

要阻止您的俄语电子邮件地址,您可以在过滤器中添加类似的内容

@.*\.ru

解释

@ - match '@' character literally
.* - match any character 0 or more times
\. - match '.' literally
ru - match 'ru' literally
相关问题