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.