我使用以下(经典)的procmail食谱赶上邮件列表的电子邮件,并通过列表名称它们文件放到一个文件夹:Procmail是否具有小写功能或类似功能?
:0
* ^((List-Id|X-(Mailing-)?List):(.*[<]\/[^>]*))
{
LISTID=$MATCH
:0
* LISTID ?? ^\/[^@\.]*
Lists/$MATCH/
}
的问题是:如果从全部小写列表名称变更Firstlettercap,我最终得到两个文件夹,一个用于'listname',另一个用于'Listname'。
我想在最终传送规则中使用它之前小写$ MATCH变量,但我无法找到对lc()函数或可用于正则表达式/替换的引用做这个。下面
一项评论所说的:
:0
* ^((List-Id|X-(Mailing-)?List):(.*[<]\/[^>]*))
{
LISTID=`echo "$MATCH" | tr A-Z a-z`
:0
* LISTID ?? ^\/[^@\.]*
.Lists.$MATCH/
}
这还没有出现做什么,我之后。尽管现在看,但是音译显然只是在第一次出现$ MATCH时才会发生,而且我的猜测是它根本不会改变它在文件夹分配行中的使用。
更新#1:如果我尝试在文件夹分配行中使用LISTID,我会得到类似于'Bricolage.project.29601.lighthouseapp'而不仅仅是'Bricolage'或 - 我之后 - 只是“拼装”。
似乎并非如此,因为正在创建具有'Listname'和'listname'的文件夹。 – phillipadsmith 2011-05-13 20:08:02
有趣的是,在这种情况下,我会给你的问题一个upvote ... :) – 2011-05-13 20:09:06
好吧,没有消息,但只是说,虽然匹配本身(很可能)确实不区分大小写,但你的问题在于匹配。尝试7.21在http://pm-doc.sourceforge.net/doc/#converting_value_to_lowercase – 2011-05-13 21:32:41