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 ).