我使用tre-agrep
(手册页),的实施方案agrep
(手册页),来执行近似模式匹配。该实用程序根据Levenshtein距离搜索匹配项,并且用户可以配置应用于替换,插入或删除编辑的罚分。
但是,我想在查询的整个长度上应用不同的权重,即在查询的开头(左端)要比在右边的删除权重低。该man
实用程序的页面并不表示可以进行这种控制。
是否有其他命令行工具可以近似匹配并更好地控制不匹配惩罚?
5
AFAIK,agrep是唯一的。鉴于它在UNIX世界中相对模糊(这太糟糕了),我什至惊讶于您甚至知道它。从理论上讲,您可以在源代码中调整这些权重,但是我不知道这是否可行。您是否尝试过联系工具的作者或什至是工具的原始论文?请注意,它们现在可能已经是老屁了:)
—
Otheus
@Otheus老屁仍然能够写代码;-)
—
库萨兰达
编写一个Levenshtein-matching实用程序并不难,其插入/删除/替换成本定义为Python或Awk中的表达式。实际上,乏味的部分是所有可能的命令行选项。如果OP愿意显示一个典型的命令行,并告诉
—
Nominal Animal
agrep
他们实际需要哪些选项,我可能会提出一些建议。实际上,计算两个琴弦的Levenshtein距离非常容易。我建议围绕GNU awk调用使用一个shell脚本。