Existe alguma maneira de encontrar arquivos semelhantes (não duplicados)?


12

Meu objetivo final é refatorar o código escrito por meus colegas de trabalho. Então, existe uma ferramenta que pode encontrar arquivos diferentes em poucas palavras?

(Editar: trata-se de um Mac, mas outros também podem gostar de respostas que não sejam do Mac.)


@ harry, dado o histórico de revisões , acho que você postou uma resposta do Windows, que foi rebaixada porque só então o requisito do Mac surgiu? Prefiro que o requisito do Mac seja descartado e veja sua resposta (se for uma boa resposta que não seja do Mac) também!
— Arjan

@Arjan: Feito.
— precisa saber é

Para um Mac, eu me perguntava se o Spotlight poderia ser usado. Duvido, mas se você souber uma maneira de fazer as coisas no Spotlight, o mdfindcomando poderá ajudar a escrever algum script para automatizar as coisas. No entanto, acho que sempre usará apenas metadados. Portanto, encontrar arquivos semelhantes pode limitar o tipo de arquivo, mas não o conteúdo do arquivo. Sem charuto.
— Arjan

Respostas:


5

O Simian faz isso para o código fonte de alguns idiomas. É melhor encontrar a codificação flagrante de copiar e colar. Seus desenvolvimentos parecem ter parado, mas funciona bem o suficiente.


Não ajuda muito - em rails aplicativo com um monte de parciais muito semelhantes ele só disse, que eu tenho linhas semelhantes em development.log
— tig

Você forneceu os arquivos certos para analisar? Você provavelmente se preocupa com suas fontes, não development.log. Para trilhos, dê uma olhada no flay rubyforge.org/frs/…
— Benjamin Bannier

Sim eu dei-lhe todos os arquivos em rails app dir
— tig

2

(Para Windows)

O produto Anti-Twin (gratuito para uso privado) alega poder fazer isso:

Se você deseja que o Anti-Twin não apenas procure duplicatas completas, mas também arquivos semelhantes, pode reduzir a correspondência mínima desejada do valor padrão de 100% para até 60%. Esta função foi especialmente projetada para a busca de arquivos quase idênticos, nos quais apenas um pequeno detalhe foi alterado. O Anti-Twin usa a pesquisa de similaridade assim que você insere um valor abaixo de 100%. A comparação de similaridade leva muito mais tempo que a pesquisa duplicada completa de 100%!

Infelizmente, a pesquisa de similaridade como parte da comparação de byte a byte só faz sentido para alguns tipos de arquivos, porque uma similaridade só pode ser detectada se os arquivos estiverem descompactados e não criptografados. Arquivos não compactados são, por exemplo, textos não formatados (.TXT) e HTML.


Eu estou no mac e funcionando algo através de vinho, paralelos ou algo parecido que não vai fazer refatoração mais fácil, só que mais forte :)
— tig

@ tig: Você deveria ter especificado isso em sua postagem. Eu adicionei a tag mac.
— harrymc

@Arjan: anulei esta resposta, como você solicitou.
— precisa saber é

com razão! Removida a [mac]tag novamente. Deveria ter sido [osx]de qualquer maneira ;-)
— Arjan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.