Newsgroup: it.comp.os.linux.sys
Titolo: domandine su procmail

adesso che ho il procmail che va mi ritrovo col .procmailrc che e' gia' 
pieno di regole.
Stavo pensando che molte regole sono uguali, magari cambiano solo di una 
parola. E allora vorrei compattarle , riducendo il loro numero.
E qui mi vengono fuori due domande:
1) supponiamo di avere due regole
:0B:
* pippo
.spam/
:0B:
* pluto
.spam/
come posso scrivere una regola che controlli la presenza della stringa 
pippo o della stringa pluto? Se faccio cosi'
:0B:
* pippo
* pluto
.spam/
la documentazione dice che fa un AND e non un OR delle condizioni.
2) Ho un aumento di prestazioni riducendo il numero di rules? 
Effettivamente sono di meno, pero' la loro complessita' aumenta....

 pippo o della stringa pluto? 
qualcosa del genere
:0B:
* (pluto|pippo)
.spam/
dai un occhiata a  man procmailex
ciao ...
-- 
#include <stdio.h>
int main(void){char c[]={10,65,110,116,111,110,105,111,32,98,97,114,98,111,110,
101,32,60,104,105,110,100,101,109,105,116,64,116,105,115,99,97,108,105,110,101,
116,46,105,116,62,10,10,0};printf("%s",c);return 0;}

 parola. E allora vorrei compattarle , riducendo il loro numero.
procmail supporta le regexp. Ma probabilmente lo sapevi gia' e chiedevi
altro...
-- 
| Ciao Cacciavite       Linux Registered User #297089
| Powered by *Debian GNU/Linux 3.0* on Celeron 667MHz 	  
| E-mail:           cacciavite616 at tiscali punto it

 Effettivamente sono di meno, pero' la loro complessita' aumenta....
Bisognerebbe misurare, ma tendenzialmente, migliorano: il motore di regex
viene invocato meno volte (anche se per piu` tempo).
-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG 
http://erlug.linux.it
-------------------------------------------------------------------------------
Wayne's World C Programming Style Guide: A == B; !;

 Sono regex. (pippo|pluto) andra` benissimo.
mmm... senti, siccome poi i pattern matching sono più lunghi e vorrei 
spezzarli su più righe perché siano umanamente intelleggibili e 
modificabili, posso scrivere così?
:0B:
* ( pippo |
     pluto |
     paperone)
.spam/
o si incazza per i newline?

 o si incazza per i newline?
devi usare \
:0B:
* (pippo| \
	pluto| \
	paperone)


 
altra domanda crtina, e se ho spazi? Supponiamo che voglio matchare 
"pippo pippo" e "pippo pluto" va bene così:
:0B:
* (pippo pippo| \
    pippo pluto)
.spam/
?
probabilmente è una domanda cretina, ma come vengono gestiti gli spazi 
prima della prima parola e dopo l'ultima? Cioè, mi spiego, è lo stesso 
che mettere
:0B:
* ( pippo pippo | \
     pippo pluto )
.spam
?

 "pippo pippo" e "pippo pluto" va bene cosě:
non vorrei sembrarti scortese, ma leggerti le pagine man procmailex e
procmailrc ?? io ti sto rispondendo rinfrescandomi la memoria su quelle ;-))
comunque ...
per quanto riguarda gli spazi iniziali mi pare che non vengono calcolati, a
meno che tu non metta l'espressione tra virgolette ... e lo stesso dicasi
per gli spazi "interni" .... fai qualche prova ...
se vuoi che l'espresione matchi con qualsiasi stringa contenga 'pippo pluto'
devi fare qualcosa del tipo
:0:
* ^From:.*"pippo pluto"
/dev/null
comunque prova sempre prima !!


 procmailrc ?? io ti sto rispondendo rinfrescandomi la memoria su quelle ;-))
lette le ho lette, ma non coprono le mie domande. Nelle manpage 
riportano esempi di filtraggi basati sui vari campi, from, subject, to e 
cosě via.
Io voglio definire regole diverse, che matchino non il from o il tuo, ma 
che cerchino sottostringe o nell'header o nel body della mail.
se vuoi cambio il subject da domandine su procmail a domandine su 
regexp, ma la domanda rimane la stessa.

 regexp, ma la domanda rimane la stessa.
man 7 regex
man egrep (visto che procmail, a lui le passa)
man procmailrc (sezione extended regular expression)
Detto questo, su i questi di leggibilita`, e` mooooolto discutibile.
IMHO, col cazzo che 
(pippo| \
pluto)
sia piu` leggibile di
(pippo|pluto)
Poi sono opinioni, eh.
-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG 
http://erlug.linux.it
-------------------------------------------------------------------------------
Wasting time is an important part of life.