Dateiinhalte Vergleichen

Gast #1659914
Nabend,

ich habe ein Problem, ich muss den Inhalt von 1000 Dateien miteinander 
vergleichen und zwar so das ich feststellen kann ob es welche gibt die 
gleich sind und wenn ja die jeweiligen Dateinamen ausgeben. Also jede 
der 1000 Dateien soll mit den jeweils den 999 Anderen verglichen werden 
(Optimierungen sind mir egal).

Kennt da wer ein Tool für, bin grade zu faul mir selber eins zu 
basteln...

Danke
Gast
Peter schrieb:
> suche einfach mal nach "doubletten finder" bei google.

Sieht schonmal gut aus, werde ich machen.

Abdul K. schrieb:

> Das ergäbe 1000 Fakultät. Das willst du nicht wirklich.

Ich glaube nicht, Abdul. (SCNR)

Beispiel mit 5 Dateien (ohne Optimierung):

1 (2,3,4,5) -> 4 Vergleiche
2 (1,3,4,5) -> 4 Vergleiche
3 (1,2,4,5) -> 4 Vergleiche
4 (1,2,3,5) -> 4 Vergleiche
5 (1,2,3,4) -> 4 Vergleiche

sind zusammen 5*4 = 20 Vergleiche. => O : n*(n-1)

Beispiel mit Optimierung:

1 (2,3,4,5) -> 4 Vergleiche
2 (3,4,5)   -> 3 Vergleiche
3 (4,5)     -> 2 Vergleiche
4 (5)       -> 1 Vergleiche

Macht 10 Vergleiche. O : n*(n-1)/2
Mach' eine MD5-Summe über jede und vergleiche nur die, bei denen das 
Ergebnis gleich ist.  Du wirst fast ausschließlich Treffer landen und 
jede Datei im Schnitt nur wenig mehr als einmal anfassen müssen (max. 
3mal bei Mehrfachtreffern).
Gast
Hc Zimmerer schrieb:
> Mach' eine MD5-Summe über jede und vergleiche nur die, bei denen das
> Ergebnis gleich ist.  Du wirst fast ausschließlich Treffer landen und
> jede Datei nur 1 ... max. 2mal anfassen müssen.

Genau das wäre meine Idee gewesen, wenn es wirklich Übereinstimmungen 
gegeben hätte, hätte ich die auch per Hand verifizieren können. Aber ich 
war einfach zu faul bzw. hatte keine Lust jetzt noch was zu coden.

Aber dank Peter rödelt Anti-Twin schon bei 40%.
Gast
Ok, Anti-Twin funktioniert genau so wie ich wollte.
Es wurden keine Übereinstimmungen gefunden; danach hab ich mal kurz eine 
Datei doppelt abgelegt um zu schauen ob es überhaupt funktioniert und 
siehe da, es tut wie es soll.

http://www.aidex.de/software/antitwin/ falls einer mit Google nicht 
weiterkommt.

Damit wäre das Problem gelöst, Danke.
Gast
$ find . -type f -exec md5sum {} \; > /tmp/md5list && \
for md5 in `cut -d\  -f1 /tmp/md5list | sort | uniq -d`; do \
cat /tmp/md5list | grep $md5; done; \
rm /tmp/md5list

Wird auch viel weniger umstaendlich moeglich sein...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.