receita procmail com um regex não funciona

2

No meu ~/.procmailrc , tenho as seguintes linhas:

:0
\* ^Subject:.*(O|o)pen( \|)(S|s)(onic|urge)
$MAILDIR/OpenSurge/

Como você pode ver, eu gostaria de colocar qualquer e-mail contendo “Open Surge” (ou qualquer variante com espaço ou letras maiúsculas) na pasta OpenSurge. Mas as mensagens contendo estas palavras só foram para a pasta padrão.

Observe que tenho muitas outras receitas com ^From:foo e quando tento ^Subject:.*OpenSurge meu trabalho de receita com "OpenSurge", mas não trabalho com o regexp ^Subject:.*(O|o)pen( \|)(S|s)(onic|urge) .

Então, como eu posso combinar por favor com um regexp todas as possibilidades de escrever "Open Surge"?

    
por fauve 26.02.2014 / 01:18

2 respostas

1

Que tal isso:

:0
* ^Subject:.*Open[ ]*Surge
OpenSurge

As configurações padrão do procmail são ignorar maiúsculas e minúsculas. Veja também D .

Uma mensagem correspondente é armazenada no arquivo OpenSurge. Normalmente está localizado em ~/Mail/ .

[Editar]

Se você também quer combinar "Open sonic", você pode usar o regexp de @Bruce Ediger, mas também existem outras maneiras:

Adicione outra regra correspondente

:0
* ^Subject:.*Open *sonic
OpenSurge

ou

:0
* ^Subject:.*Open *Surge | \
  ^Subject:.*Open *sonic
OpenSurge

ou

:0
* ^Subject:.*(Open *Surge|Open *sonic)
OpenSurge

e assim por diante.

Você também não deve usar o padrão .procmailrc , mas um com comentários como este .

Para verificar o que está acontecendo, ative VERBOSE . Os logs são armazenados em LOGFILE .

    
por 26.02.2014 / 01:45
1

Eu acho que você tem o "zero ou mais espaços entre 'aberto' e 'surto'" errado:

* ^Subject:.*(O|o)pen *(S|s)(onic|urge)

Eu tenho '*' (asterisco espacial) entre 'caneta' e '(S' no regexp, apenas no caso da fonte stackexchange ser difícil de ler.

    
por 26.02.2014 / 02:40