Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
文件中的grep通配符_Grep_Wildcard - Fatal编程技术网

文件中的grep通配符

文件中的grep通配符,grep,wildcard,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 在上面提到的两个文件中,我列出了垃圾邮件来源和主题(如辉瑞、cialis、伟哥等),每一个都在文本文件中的一行 如何在文件中使

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

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
在上面提到的两个文件中,我列出了垃圾邮件来源和主题(如辉瑞、cialis、伟哥等),每一个都在文本文件中的一行

如何在文件中使用通配符?例如,我最近开始收到来自美国的虚假邮政服务通知
地位_38@unikmetal.ru,因此我想阻止“@\u.ru”。

当您向grep添加
-F
时,它处理的是固定字符串而不是正则表达式。据我所知,要使用通配符,必须使用正则表达式

删除
grep
命令中的
-F

grep -qif "/email_filters/from.txt"
若要阻止您的俄语电子邮件地址,您可以在过滤器中添加类似的内容

@.*\.ru
解释

@ - match '@' character literally
.* - match any character 0 or more times
\. - match '.' literally
ru - match 'ru' literally

谢谢你。我很感激你的完整解释。