![Logcheck:包含非拉丁字符的通配符](https://linux22.com/image/549225/Logcheck%EF%BC%9A%E5%8C%85%E5%90%AB%E9%9D%9E%E6%8B%89%E4%B8%81%E5%AD%97%E7%AC%A6%E7%9A%84%E9%80%9A%E9%85%8D%E7%AC%A6.png)
在我的邮件服务器上,我有一个自定义的日志检查规则如下,旨在过滤来自传递的消息:
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ deliver\.*\): msgid=.*: saved mail to.*$
不幸的是,如果 Message-Id 中有非拉丁字符,则 msgid=.* 通配符不匹配,因此如下行会通过过滤器:
May 10 19:43:20 zapp deliver(matt): msgid=<20110510064307.3702.qmail@ÇöÀÌ01>: saved mail to spam
Logcheck 内部使用 egrep,我找不到任何方法让句点字符包含非拉丁字符。有什么想法吗?
答案1
我认为您的问题不是语言环境字符。对我来说,部分deliver\.*\):
似乎不对,并且不匹配deliver(matt)
。请尝试使用deliver[^:]+:
。