如何确定文件中哪个模式与grep匹配?

时间:2009-08-25 22:54:06

标签: grep procmail

我使用procmail在我的收件箱中进行大量排序。我的最后一个食谱与传入的From:匹配一个历史悠久的电子邮件地址和电子邮件地址模式的(非常)长白/金列表。食谱是:

# Anything on the goldlist goes straight to inbox
:0
* ? formail -zxFrom: -zxReply-To | fgrep -i -f $HOME/Mail/goldlist
{
  LOG="RULE Gold: "
  :0:
  $DEFAULT
}

最终的配方将遗留在可疑文件夹中的所有内容都作为可能的垃圾邮件进行检查。 Goldlist目前只有7384行(yikes ......)。每隔一段时间,我就会得到一条已经漏掉的垃圾邮件,我想修复失败的模式。我以为我刚才读过关于grep的一个特殊标志,它有助于显示匹配的模式,但我再也找不到了。有没有办法使用grep显示匹配扫描文本的文件中的模式?或者另一个类似的工具可以回答问题,而不是编写脚本来按模式扫描模式?

2 个答案:

答案 0 :(得分:2)

grep -o将仅输出匹配的文本(而不是整行)。这可能有所帮助。否则,我认为你需要编写一个包装器脚本来一次尝试一个模式。

答案 1 :(得分:2)

我不确定这是否会对你有所帮助。有一个“-o”参数只输出匹配的表达式。

从手册页:

   -o, --only-matching
          Show only the part of a matching line that matches PATTERN.