Man page - procmailsc(5)
Packages contains this manual
Available languages:
en es hu ja roManual
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. .