listar arquivos com nomes semelhantes classificados por similaridade [closed]

1

É possível pesquisar arquivos e listá-los descendente por similaridade?

por exemplo:

Os arquivos a seguir estão em /:

  • heo
  • HELLO
  • helo
  • ola

Quando procuro por 'olá', gostaria de ter uma lista como:

  • ola
  • HELLO
  • helo
  • heo

É claro que o arquivo com 100% de similaridade seria o arquivo que eu teria obtido com find / -name 'hello'

A razão pela qual eu quero ter algo assim é o seguinte: Eu não quero saber como um arquivo é escrito exatamente para encontrá-lo.

    
por SklogW 19.07.2016 / 15:47

2 respostas

3

com zsh :

setopt extendedglob # best in ~/.zshrc
ls -ld -- (#ia1)hello # case-insensitive, allow one error
ls -ld -- (#ia2)hello # case-insensitive, allow up to two errors.

Recursivamente, pesquise arquivos ocultos (e em diretórios ocultos) também ( (D) ):

ls -ld -- /**/(#ia2)hello(D)

(note que ele não faz nenhuma classificação por semelhança , apenas a classificação de ls pelo nome de seus argumentos).

    
por 19.07.2016 / 16:03
1

É certamente possível, embora não seja popular.

Eu nunca usei a ferramenta, mas sei o que procurar; talvez você queira tentar fzf .

Geralmente, o que você quer é chamado de "pesquisa difusa", nome derivado da lógica fuzzy. Você conhece mais ou menos o que você quer. A parte mais ou menos faz com que seja fuzzy.

Eu daria uma chance a fzf se fosse você, mas considere outras opções:

  • Se você criou o arquivo por conta própria e sabe como ele é iniciado, use a conclusão de tabulação para encontrá-lo (comece a digitar o nome do arquivo e pressione a guia para autocompletar / ver as opções possíveis).
  • Se você não souber realmente o nome do arquivo, mas conhecer outros dados (tamanho, data de criação, etc.), poderá pesquisar por esses quantificadores.
por 19.07.2016 / 15:54