Я использую tre-agrep
(manpage) , реализацию agrep
(manpage) , чтобы выполнить приблизительное сопоставление с образцом. Эта утилита выполняет поиск совпадений на основе расстояния Левенштейна , и пользователь может настроить штраф, примененный к изменениям замены, вставки или удаления.
Я хотел бы, однако, применять весовые коэффициенты по-разному по длине запроса, а именно с меньшим весом для удалений в начале (левый конец) запроса, чем справа. man
Страница для этой утилиты не означает , что такой уровень контроля возможно.
Существуют ли другие инструменты командной строки, где возможно приблизительное соответствие с более точным контролем штрафов за несоответствие?
agrep
им действительно нужны, я, вероятно, мог бы что-то подсказать . Вычислить расстояние Левенштейна для двух струн очень просто. Я бы предложил сценарий оболочки, обернутый вокруг вызова GNU awk.Ответы:
Нет. Такая настройка выходит за рамки инструмента Linux и входит в область написания собственного кода. Использование популярного языка высокого уровня (Java, JavaScript, Python, Perl) будет использовать немного больше памяти, чем C, и будет немного медленнее для языков сценариев, но, вероятно, это будет незначительным для вашего варианта использования. Так что повторно спросите на stackoverflow с точными деталями, которые вам нужны, и кто-то может предложить вам один вкладыш.
источник