Man page - procmailsc(5)

Packages contains this manual

Available languages:

en es hu ja ro

Manual

PROCMAILSC

NÉV
ÖSSZEGZÉS
LEÍRÁS
SĂșlyozĂĄs egyszerƱ feltĂ©telnĂ©l
SĂșlyozott kilĂ©pĂ©siĂ©rtĂ©kek
SĂșlyozĂĄs levĂ©lmĂ©ret alapjĂĄn
EGYÉB
PÉLDÁK
FIGYELMEZTETÉS
LÁSD MÉG
HIBÁK
EGYÉB
MEGJEGYZÉS
SZERZƐI
FORDÍTÁS

NÉV

procmailsc - a procmail sĂșlyozott pontozĂĄsi mĂłdszere

ÖSSZEGZÉS

[ * ] wˆx feltĂ©tel

LEÍRÁS

A szƱrĂ©si feltĂ©telekben megadott hagyomĂĄnyos igaz/hamis vizsgĂĄlat mellett a sĂșlyozott pontozĂĄsi mĂłdszert is lehet hasznĂĄlni a feltĂ©telek helyessĂ©gĂ©nek megĂĄllapĂ­tĂĄsĂĄra. A szƱrĂ©si feltĂ©telben hasznĂĄlt pontozĂĄsi mĂłdszereknĂ©l a pozitĂ­v Ă©rtĂ©kek az igaz ĂĄllĂ­tĂĄsnak felelnek meg.

A feltĂ©telek az alĂĄbbi mĂłdon kapnak pontokat, ‘fontossĂĄg’ ( w ) Ă©s ‘kitevƑ’ ( x ). A feltĂ©tel elƑtt (ugyanabban a sorban) lehet megadni ezt a következƑkĂ©pen:

wˆx

Whereas both w and x are real numbers between -2147483647.0 and 2147483647.0 inclusive.

SĂșlyozĂĄs egyszerƱ feltĂ©telnĂ©l

A feltĂ©tlenek valĂł elsƑ megfelelĂ©skor w -vel nƑ a pontszĂĄm. A következƑ megfelelĂ©skor mĂĄr w*x -el. Harmadik talĂĄlat esetĂ©n w*x*x -el. Negyedik megfelelĂ©skor w*x*x*x -el. És Ă­gy tovĂĄbb.

Ezt a következƑ kĂ©plettel lehet kifejezni:

n
n k-1 x - 1
w * Sum x = w * -------
k=1 x - 1

A kĂ©plet megadja a feltĂ©tel n szĂĄmĂș megfelelĂ©sekor az összpontszĂĄmot.

A következƑ eseteket lehet x -tƑl fĂŒggƑen megkĂŒlönböztetni:

x=0

Csak az elsƑ talĂĄlat esetĂ©n növekszik a pontszĂĄm w-vel. Minden mĂĄs talĂĄlat figyelmen kĂ­vĂŒl lesz hagyva.

x=1

Minden egyes talålat w-vel növeli a pontszåmot. Az összpontszåm a talålatok szåmåval egyenes arånyban növekszik.

0<x<1

Minden Ășjabb talĂĄlattal kevesebb pontot adunk az összpontszĂĄmhoz, mint elƑtte. Ekkor az összpontszĂĄm egyoldalrĂłl (aszimptotikusan) közelĂ­t egy hatĂĄrĂ©rtĂ©khez. (LĂĄsd MEGJEGYZÉS rĂ©szt kĂ©sƑbb).

1<x

Minden Ășjabb talĂĄlattal egyre több pontot adunk az összeghez, mint elƑtte. Az összpontszĂĄm exponenciĂĄlisan növekszik.

x<0

SegĂ­tsĂ©gĂ©vel megkĂŒlönböztethetjĂŒk az egĂ©sz- vagy pĂĄratlan szĂĄmĂș talĂĄlatokat.

Ha a feltételnek való megfelelést megfordítjuk [negåljuk] (pl. talålat, ha nincs egyezés a feltétellel), akkor az n értéke természetesen nulla vagy egy lehet.

SĂșlyozott kilĂ©pĂ©siĂ©rtĂ©kek

Ha a program EXIT_SUCCESS (=0) -vel fejezi be mƱködését, akkor az összpontszåm w lesz. Bårmely mås kilépési kód (hibås mƱködés) esetén az összpontszåm x lesz.

A program kilĂ©pĂ©si kĂłdjĂĄnak megfordĂ­tĂĄsakor (negĂĄlĂĄsakor) kapott pontszĂĄmot a lehetsĂ©ges talĂĄlatok szĂĄmĂĄval (’virtual number of matches’) azonosĂ­tja a program. Az összpontszĂĄm kiszĂĄmĂ­tĂĄsa ugyanĂșgy törtĂ©nik, mint ahogy hagyomĂĄnyos kifejezĂ©ssel valĂł egyezĂ©skor törtĂ©nne, vagyis mintha n=‘exitcode’ szĂĄmĂș talĂĄlat lett volna.

SĂșlyozĂĄs levĂ©lmĂ©ret alapjĂĄn

Ha a levél mérete M akkor:

* wˆx > L

esetĂ©n a megfelelƑ pontszĂĄm a következƑkĂ©pen szĂĄmolhatĂł:

x
/ M \
w * | --- |
\ L /

És:

* wˆx < L

esetĂ©n a megfelelƑ pontszĂĄm a következƑkĂ©pen szĂĄmolhatĂł:

x
/ L \
w * | --- |
\ M /

MindkĂ©t esetben, ha L=M, akkor az összpontszĂĄmhoz csupĂĄn w adĂłdik. Az elƑzƑ pĂ©lda azonban hosszabb levelekre, mĂ­g az utĂłbbi a rövidebb levelekre hasznĂĄlandĂł. Az x vĂĄltoztatĂĄsĂĄval a fĂŒggvĂ©ny pontossĂĄgĂĄt lehet ’finomhangolni’, de az x=1 többnyire megfelelƑ.

EGYÉB

A szƱrĂ©si feltĂ©telben (recipe) szereplƑ összes pontszĂĄmot a $= környezeti vĂĄltozĂł segĂ­tsĂ©gĂ©vel lehet kiolvasni. Ezt a vĂĄltozĂł minden szƱrĂ©s utĂĄn ellenƑrzĂ©sre kerĂŒl (mĂ©g ha a szƱrĂ©s nem is hajtĂłdik vĂ©gre).

PÉLDÁK

A következƑ pĂ©ldĂĄval minden a olyan levelet töröltethetĂŒnk, amely a törzsĂ©ben 150 sornĂĄl többet tartalmaz. Az elsƑ sorban egy ĂŒres feltĂ©tel talalhatĂł, amely minden levĂ©lre igaz, ezzel a pontszĂĄmnak egy kezdeti (negatĂ­v) Ă©rtĂ©ket adtunk meg. A következƑ feltĂ©tel segĂ­tsĂ©gĂ©vel minden egyes Ășj sor esetĂ©n növeltetjĂŒk az összpontszĂĄmot (soronkĂ©nt egy ponttal). A feltĂ©tel pozitĂ­v pontszĂĄmmal zĂĄrul, ha a levĂ©l 150 sornĂĄl többet tartalmazott.

:0 Bh * -150ˆ0 * 1ˆ1 ˆ.*$ /dev/null

Ha van egy kĂŒlön levelesmappĂĄnk, amelyet mindig elƑször olvasunk el, akkor a következƑ szƱrĂ©si feltĂ©tellel a fontosabb leveleket ĂĄtirĂĄnyĂ­thatjuk ebbe a mappĂĄba. Az elsƑ feltĂ©tel nem hasznĂĄl pontozĂĄst, mindössze figyeli, hogy a levelek nem tartalmazzĂĄk-e a megadott feltĂ©teleket. A következƑ feltĂ©telek pedig a következƑt fejezik ki: jĂłzsi Ă©s kati ĂĄltalĂĄban hasznos dolgokrĂłl Ă­rnak; a megbeszĂ©lĂ©sekrƑl szĂłlĂł levelek fontosak a szĂĄmunkra; vĂĄlaszleveleket is szĂ­vesen olvasunk; Elvis-rƑl szĂłlĂł leveleket (hĂĄtha megtudunk valami Ășjat) mindig elolvassuk (minĂ©l többször emlĂ­tik a levĂ©lben Elvist, annĂĄl több pontot kap a levĂ©l, de maximum 4000 pontot); tĂșl sok idĂ©zett sort tartalmazĂł levelet el szeretnĂ©nk kerĂŒlni; ha smiley-t kĂŒldenek nekĂŒnk, akkor azt szĂ­vesen megnĂ©zzĂŒk (erre maximum 3500 pontot adunk); hĂĄrom embertƑl (fƑnƑk, timi, pĂ©ter) ĂĄltalĂĄban unalmas leveleket szoktunk kapni; Ă©s vĂ©gĂŒl nem szeretjĂŒk a hosszĂș leveleket, jobb, ha a levĂ©l csak 2000 bĂĄjt hosszĂș, ha ennĂ©l hosszabb, akkor 100 pontot, ha 4000 bĂĄjtnĂĄl hosszabb akkor pedig 800 pontot vonunk le az összes pontszĂĄmĂĄbĂłl. A pontozĂĄsi mĂłdszer segĂ­tsĂ©gĂ©vel azonban, mĂ©g ha egy unalmas levelet is kapunk hĂĄrom emberĂŒnk valamelyikĂ©tƑl a levĂ©l mĂ©g bekerĂŒlhet a kĂŒlön mappĂĄnkba, ha pl. megbeszĂ©lĂ©srƑl szĂłl, vagy tartalmaz legalĂĄbb 2 darab smileyt.

:0 HB * !ˆPrecedence:.*(junk|bulk) * 2000ˆ0
ˆFrom:.*(jozsi@otthon|kati@munkahely) * 2000ˆ0 ˆSubject:.*megbeszeles *
300ˆ0 ˆSubject:.*Re: * 1000ˆ.75 elvis|presley * -100ˆ1 ˆ> * 350ˆ.9 :-\)
* -500ˆ0 ˆFrom:.*(fonok|timi|peter)@munkahely * -100ˆ3 > 2000
kulon_mappa

Ha a levelezƑlistĂĄkrĂłl Ă©rkezƑ levelek közĂŒl csak a hasznos leveleket szeretnĂ©nk elolvasni, akkor a következƑ szƱrĂ©si feltĂ©telt hasznĂĄlhatjuk. Az elsƑ feltĂ©tel ellenƑrzi, hogy a levĂ©l a megadott levelezƑlistĂĄrĂłl jött-e. AztĂĄn a leveleket ellenƑrizzĂŒk, hogy olyan szemĂ©lytƑl jött-e akinek adunk a szavĂĄra, vagy olyan tĂ©mĂĄrĂłl szĂłl, amelyrƑl mindent El szeretnĂ©nk olvasni. Ha ezeknek megfelel, akkor marad a levĂ©l. A többi levĂ©lnĂ©l megvizsgĂĄljuk, hogy az idĂ©zett Ă©s az Ășj sorok arĂĄnya elĂ©ri-e az 1:2-hözt. Ha ennĂ©l több, akkor töröljĂŒk a levelet. Minden olyan levĂ©l, amely ĂĄtment az elƑzƑ vizsgĂĄlaton mentĂ©sre kerĂŒl.

:0
ˆFrom levelezƑlista@vhol
{
:0:
* ˆ(From:.*(piroska|bandi)|Subject:.*sieles)
levlista

:0 Bh
* 20ˆ1 ˆ>
* -10ˆ1 ˆ[ˆ>]
/dev/null

:0:
levlista
}

TovĂĄbbi mintapĂ©ldĂĄk a procmailex (5) sĂșgĂłban lehet talĂĄlni.

FIGYELMEZTETÉS

A procmail a gyors keresĂ©s Ă©rdekĂ©ben mindig csak a balelsƑ (leftmost) legrövidebb egyezĂ©sig keres, ha csak nem a MATCH -be Ă©rtĂ©ket kell ĂĄtadni, ebben az esetben a balelso leghosszabb talĂĄlatig keres. Pl. A balelsƑ legrövidebb talĂĄlat a következƑ kifejezĂ©sre:

.*

mindig nullahosszĂșsĂĄgĂș talĂĄlatot eredmĂ©nyez.

.+

pedig mindig csak egy karaktert (sortörést persze nem) eredményez.

LÁSD MÉG

procmail (1), procmailrc (5), procmailex (5), sh (1), csh (1), egrep (1), grep (1),

HIBÁK

Ha az x Ă©rtĂ©ke tĂșlcsordulĂĄshoz vezet, akkor a matematikai fĂŒggvĂ©nytĂĄrban lĂ©vƑ pow (3) fĂŒggvĂ©nytƑl fĂŒgg a vĂ©gsƑ eredmĂ©ny.

LebegƑ pontos szĂĄmok mĂ©rnöki formĂĄtumban (pl. 12e5) nem adhatĂłk meg.

EGYÉB

A ‘pozitĂ­v vĂ©gtelen’ (2147483647) elĂ©rĂ©sekor minden tovĂĄbbi sĂșlyozĂĄs ĂĄt lesz ugorva.

A ‘negatĂ­v vĂ©gtelen’ (-2147483647) elĂ©rĂ©sekor a szƱrĂ©s megfelelĂ©s hiĂĄnyĂĄban befejezƑdik.

MEGJEGYZÉS

0<x<1 esetĂ©n a hagyomĂĄnyos feltĂ©tel pontszĂĄma a következƑ szĂĄmhoz közelĂ­t egyoldalrĂłl:

w
-------
1 - x

A maximålis érték felének eléréséhez

- ln 2
n = --------
ln x

szĂĄmĂș talĂĄlatra van szĂŒksĂ©g.

SZERZƐI

Stephen R. van den Berg

<srb@cuci.nl>

Philip A. Guenther

<guenther@sendmail.com>

FORDÍTÁS

A kézikönyv magyar fordítåsåt a Vizi Szilård <vizisz@freemail.hu> készítette.

Ez a fordĂ­tĂĄs ingyenes dokumentĂĄciĂł; lĂĄsd a GNU General Public License 3 . FeltĂ©telezzĂŒk, hogy NEM FELELƐSSÉG.

Ha hibĂĄt talĂĄl a kĂ©zikönyv oldal fordĂ­tĂĄsĂĄban, kĂŒldje el a e-mail cĂ­m: TODO. .