¿Hay alguna forma de encontrar archivos similares (no duplicados)?

12

Mi objetivo final es refactorizar el código escrito por mis compañeros de trabajo. Entonces, ¿hay alguna herramienta que pueda encontrar archivos que difieran en pocas palabras?

(Editar: esto es para una Mac, pero a otros también les pueden gustar las respuestas que no sean Mac).

tig
fuente
@harry, dado el historial de revisiones , supongo que publicaste una respuesta de Windows, que fue rechazada porque solo entonces surgió el requisito de Mac. ¡Prefiero que se elimine el requisito de Mac y ver tu respuesta (si fue una buena respuesta que no sea Mac) también!
Arjan
@Arjan: Listo.
harrymc
Para una Mac, me preguntaba si Spotlight podría usarse. Lo dudo, pero si conoces una forma de hacer cosas en Spotlight, entonces el mdfindcomando podría ayudar a escribir un script para automatizar las cosas. Sin embargo, creo que siempre usará metadatos. Por lo tanto, encontrar archivos similares puede limitar el tipo de archivo, pero no el contenido del archivo. Sin cigarro
Arjan

Respuestas:

5

Simian hace esto para el código fuente de algunos idiomas. Es mejor encontrar una codificación flagrante de copiar y pegar. Su desarrollo parece haberse estancado, pero funciona lo suficientemente bien.

Benjamin Bannier
fuente
No ayudó mucho: en la aplicación de rieles con muchos parciales muy similares, solo decía que tengo líneas similares en desarrollo.log
tig
¿Le diste los archivos correctos para analizar? Probablemente te interesan tus fuentes, no development.log. Para ver los rieles, echa un vistazo a flay rubyforge.org/frs/…
Benjamin Bannier
Sí, le di todos los archivos en el directorio de la aplicación rails
tig
2

(Para ventanas)

El producto Anti-Twin (gratuito para uso privado) afirma que puede hacer esto:

Si desea que Anti-Twin no solo busque duplicados completos sino también archivos similares, puede reducir la coincidencia mínima deseada desde el valor predeterminado del 100% hasta el 60%. Esta función ha sido especialmente diseñada para la búsqueda de archivos casi idénticos donde solo se modificó un pequeño detalle. Anti-Twin utiliza la búsqueda de similitud tan pronto como ingrese un valor por debajo del 100%. ¡La comparación de similitudes lleva mucho más tiempo que la búsqueda duplicada completa del 100%!

Desafortunadamente, la búsqueda de similitud como parte de la comparación byte por byte solo tiene sentido para algunos tipos de archivos, porque solo se puede detectar una similitud si los archivos están sin comprimir y sin cifrar. Los archivos sin comprimir son, por ejemplo, textos sin formato (.TXT) y HTML.

harrymc
fuente
Estoy en Mac y ejecuto algo a través del vino, paralelos o algo así no hará que la refactorización sea más fácil, solo más difícil :)
tig
@tig: Deberías haber especificado esto en tu publicación. He agregado la etiqueta mac.
harrymc
@Arjan: borré esta respuesta, como lo solicitó.
harrymc
con toda la razón! Se eliminó la [mac]etiqueta nuevamente. Debería haber sido de [osx]todos modos ;-)
Arjan