Korzystam z tre-agrep
(manpage) , implementacji agrep
(manpage) , aby wykonać przybliżone dopasowanie wzorca. To narzędzie wyszukuje dopasowania na podstawie odległości Levenshteina , a użytkownik może skonfigurować karę nakładaną za zmiany podmiany, wstawiania lub usuwania.
Chciałbym jednak zastosować ważenia w różny sposób na całej długości zapytania, a mianowicie o niższej wadze dla usuwania na początku (lewym końcu) zapytania niż po prawej stronie. man
Aktualizacja tego narzędzia nie wskazuje, że taki poziom kontroli jest możliwe.
Czy istnieją inne narzędzia wiersza poleceń, w których możliwe jest przybliżone dopasowanie z lepszą kontrolą kar za niedopasowanie?
agrep
faktycznie potrzebują, prawdopodobnie mógłbym coś wymyślić. Obliczenie odległości Levenshteina dwóch strun jest naprawdę bardzo łatwe. Sugerowałbym skrypt powłoki owinięty wokół wywołania GNU awk.Odpowiedzi:
Nie. Tego rodzaju dostosowanie nie wchodzi w zakres narzędzia systemu Linux i obejmuje pisanie własnego kodu. Używanie popularnego języka wysokiego poziomu (Java, JavaScript, Python, Perl) zużyje nieco więcej pamięci niż C i będzie nieco wolniejsze dla języków skryptowych, ale prawdopodobnie będzie to nieistotne w twoim przypadku użycia. Zapytaj ponownie o przepełnienie stosu z dokładnymi szczegółami, których potrzebujesz, a ktoś może zaoferować ci jedną linijkę.
źródło