sala@home:~$

agrep

Bár a grep az egyik leggyakrabban használt eszköz, amit én is több példában használtam már, időnként érdemes az eredeti grep helyett egy továbbfejlesztett változatot is kipróbálni.

A következő ( nem túlzottan életszerű ) példában egy alkönyvtárban 4 fájl van, de a kutya szót kétszer is hibásan sikerült leírnunk:

$ ls 
kuta_3  kutttya_4  kutya_1  kutya_2

Nem túl meglepő módon, ha a kutyákra keresünk, akkor csak a pontosan leírt nevű fájlokat találjuk meg:

$ ls | grep kutya
kutya_1
kutya_2

Ha grep helyett agrepet ( agrep = approximate grep ) használunk, és 1 betű eltérést engedélyezünk, akkor már három, ha 2 betű eltérést engedélyezünk, akkor mind a 4 fájlt megkapjuk:

$ ls | agrep -1 kutya
kuta_3
kutya_1
kutya_2
$ ls | agrep -2 kutya
kuta_3
kutttya_4
kutya_1
kutya_2

Betűeltérésen 1 betű törlését, 1 betű beillesztését, illetve 1 betű másik betűre cserélését értjük, vagyis tulajdonképpen a Levenshtein-távolságot vizsgálja agrep.

Többféle agrep implementációval is találkozhatunk, én a TRE nevűt használtam ( egyszerűen azért, mert ez van a Linux disztribúciómban ).