我使用以下(經典)的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