Dateiinhalte Vergleichen

Gast #1659914
Lesenswert?

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 #1659949
Lesenswert?

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
Gast #1659953
Lesenswert?

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 #1661082
Lesenswert?

$ 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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren