J'utilise tre-agrep
(manpage) , une implémentation de agrep
(manpage) , pour effectuer une correspondance approximative des motifs. Cet utilitaire recherche des correspondances basées sur la distance de Levenshtein , et l'utilisateur peut configurer la pénalité appliquée pour les modifications de substitution, d'insertion ou de suppression.
Je voudrais, cependant, appliquer des pondérations différentielles sur la longueur de la requête, à savoir avec un poids plus faible pour les suppressions au début (extrémité gauche) de la requête qu'à droite. La man
page de cet utilitaire n'indique pas qu'un tel niveau de contrôle est possible.
Existe-t-il d'autres outils de ligne de commande permettant une correspondance approximative avec un contrôle plus fin des pénalités de non-concordance?
agrep
ils ont réellement besoin, je pourrais probablement préparer quelque chose. Calculer la distance Levenshtein de deux chaînes est vraiment très simple. Je suggérerais un script shell enroulé autour de l'invocation de awk GNU.Réponses:
Non. Ce type de personnalisation n'entre pas dans le cadre d'un outil Linux et dans le cadre de l'écriture de votre propre code. L'utilisation d'un langage de haut niveau populaire (Java, JavaScript, Python, Perl) utilisera un peu plus de mémoire que C et sera un peu plus lent pour les langages de script, mais cela sera probablement négligeable pour votre cas d'utilisation. Alors réinterrogez sur stackoverflow avec les détails exacts dont vous avez besoin et quelqu'un pourrait vous offrir une doublure.
la source