模糊搜索目录名的最佳/合适算法是什么?我想实现一个bash完成,它使用模糊搜索完成目录/文件名,但是算法似乎依赖于要匹配的字符串集。

最佳答案

隐马尔可夫模型。。。这是一个有趣的提议。我会这样做:
首先,解析文件路径以获取最后一个斜杠后的文本

IFS='/' read -a filepath <<< '$string'
dirname=${filepath[${#filepath[@] - 1]}

接下来,使用find获取当前路径中的所有直接子目录,并将它们添加到bash completion选项中。您可以使用=~运算符代替模糊搜索,如所述in this answer
for i in 'find . -type d -maxdepth 1'; do
  if [[ i =~ $dirname ]]; then
    //add to bash completion option, unsure how to do this part
  fi
done

但是,请注意=~是一个仅bash的运算符。

关于algorithm - 模糊搜索目录名称的最佳算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20472994/

10-10 13:46
查看更多