Gibt es eine Möglichkeit, ähnliche Dateien zu finden (keine Duplikate)?

12

Mein letztes Ziel ist die Umgestaltung des von meinen Mitarbeitern geschriebenen Codes. Gibt es also ein Tool, mit dem Dateien gefunden werden können, die sich in nur wenigen Worten unterscheiden?

(Bearbeiten: Dies ist für einen Mac, aber andere mögen möglicherweise auch Antworten, die nicht von Mac stammen.)

tig
quelle
@harry, angesichts des Versionsverlaufs haben Sie wahrscheinlich eine Windows-Antwort gepostet, die abgelehnt wurde, weil erst dann die Mac-Anforderung auftauchte? Ich möchte lieber die Mac-Anforderung fallen lassen und auch Ihre Antwort sehen (wenn es sich um eine gute Nicht-Mac-Antwort handelt)!
Arjan
@Arjan: Fertig.
Harrymc
Für einen Mac habe ich mich gefragt, ob Spotlight verwendet werden kann. Ich bezweifle es, aber wenn Sie eine Möglichkeit kennen, Dinge in Spotlight zu tun, kann der mdfindBefehl helfen, ein Skript zu schreiben, um Dinge zu automatisieren. Ich denke jedoch, dass immer nur Metadaten verwendet werden. Daher kann das Auffinden ähnlicher Dateien den Dateityp einschränken, nicht jedoch den Dateiinhalt. Keine Zigarre.
Arjan

Antworten:

5

Simian macht dies für den Quellcode einiger Sprachen. Es ist am besten, eine offensichtliche Copy-n-Paste-Codierung zu finden. Seine Entwicklungen scheinen ins Stocken geraten zu sein, aber es funktioniert gut genug.

Benjamin Bannier
quelle
Hat nicht sehr geholfen - in der Rails App mit vielen sehr ähnlichen Partials wurde nur gesagt, dass ich ähnliche Zeilen in development.log habe
tig
Haben Sie ihm die richtigen Dateien zur Analyse gegeben? Sie interessieren sich wahrscheinlich für Ihre Quellen, nicht development.log. Für Schienen werfen Sie einen Blick auf flay rubyforge.org/frs/…
Benjamin Bannier
Ja ich habe es alle Dateien in Rails - Anwendung dir
Tig
2

(Für Windows)

Das Produkt Anti-Twin (kostenlos für den privaten Gebrauch) behauptet , dies zu können:

Wenn Anti-Twin nicht nur nach vollständigen Duplikaten, sondern auch nach ähnlichen Dateien suchen soll, können Sie die gewünschte Mindestübereinstimmung vom Standardwert von 100% auf bis zu 60% reduzieren. Diese Funktion wurde speziell für die Suche nach nahezu identischen Dateien entwickelt, bei denen nur ein winziges Detail geändert wurde. Anti-Twin verwendet die Ähnlichkeitssuche, sobald Sie einen Wert unter 100% eingeben. Der Ähnlichkeitsvergleich dauert viel länger als die 100% vollständige Duplikatsuche!

Leider ist die Ähnlichkeitssuche im Rahmen des byteweisen Vergleichs nur für wenige Dateitypen sinnvoll, da eine Ähnlichkeit nur erkannt werden kann, wenn die Dateien unkomprimiert und unverschlüsselt sind. Unkomprimierte Dateien sind z. B. unformatierte Texte (.TXT) und HTML.

harrymc
quelle
Ich bin auf einem Mac und wenn ich etwas durch Wein, Parallelen oder ähnliches laufen lasse, wird das Refactoring nicht einfacher, sondern nur schwieriger :)
TIG
@tig: Das hättest du in deinem Beitrag angeben sollen. Ich habe das Mac-Tag hinzugefügt.
Harrymc
@Arjan: Ich habe diese Antwort nicht gelöscht, wie Sie angefordert haben.
Harrymc
zu Recht! Das [mac]Tag wurde erneut entfernt. Hätte [osx]sowieso sein sollen ;-)
Arjan