【发布时间】:2016-07-31 17:34:06
【问题描述】:
我有几个旧文本数据文件,这些文件是在 90 年代使用旧的 DOS 时代文字处理器生成的。由于当时存在的限制,在数据输入过程中有很多很多条目被“简化”了。
例如,“Náufragos”一词输入为“Naufragos”。
现在,当在所述数据文件中搜索“Náufragos”时,我使用 grep 查找“Náufragos”并且搜索结果为空(应该如此),但我确实需要所述搜索来查找并输出“Naufragos”。
我已经梳理了 grep 文档并在 Google 上进行了广泛搜索,但结果都是空的。
任何解决方案都需要处理涉及大多数(如果不是全部)字符“变体”的情况,这些“变体”基于基于拉丁字母表(即,在所说的中没有中文、西里尔文、日文等)旧数据文件)。
是否有 grep 或 perl 选项可以做到这一点?可能是这样的:
grep -<magic option> Náufragos file.txt
【问题讨论】:
-
看看这个 Perl 模块:search.cpan.org/~bkb/Text-Fuzzy-0.24/lib/Text/Fuzzy.pod。它可以比较单词并返回它们的“相似度指数”。对于您的示例单词,索引应等于“1”,因为单个字符已更改。
标签: perl unix search grep special-characters