如果最多两个字符不同,则匹配字符串

时间:2014-10-16 12:07:35

标签: linux shell grep

我有一个名为list.txt的不同名称的列表。我想检查此列表中是否已存在名称。但是,我想说明一些用户输入错误和大写字母(即输入“Jeffersen”而不是“Jefferson”,或“Muller”而不是“Müller”)。我知道在grep -i命令中可以忽略大写(见下文)。是否有(grep)shell命令,其中还可以设置最大可能不同的字符数?对于前者应该允许最多2个字符差异,这意味着如果输入“Mueller”,仍然会找到“Müller”。

#!/bin/sh

echo "Type in name"
read prompt
p=/my-directory-to-listfile/
grep -i "$prompt" /$p/list.txt

1 个答案:

答案 0 :(得分:3)

Agrep(近似grep)应该适合您,或者使用levenshtein实现。大多数语言都有它。