【问题标题】:Best algorithm for fuzzy searching directory names模糊搜索目录名称的最佳算法
【发布时间】:2013-12-09 14:25:57
【问题描述】:

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

【问题讨论】:

  • 那么你的字符串集是什么?您希望搜索多少个目录?等等等等。你对约束了解多少?
  • @IvanVergiliev 我要补全当前目录下的所有文件。

标签: algorithm fuzzy-search


【解决方案1】:

嗯……这是一个有趣的提议。我会这样做:

首先,解析文件路径,得到最后一个斜杠后的文字

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

接下来,使用find 获取当前路径中的所有直接子目录目录,并将它们添加到 bash 完成选项中。您可以使用=~ 运算符代替模糊搜索,如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 的运算符。

【讨论】:

    猜你喜欢
    • 2016-08-25
    • 2011-10-30
    • 2013-04-15
    • 2015-08-14
    • 1970-01-01
    • 2010-10-04
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多