Ich habe eine große und wachsende Anzahl von Textdateien, die alle recht klein sind (weniger als 100 Bytes). Ich möchte jedes mögliche Paar von Dateien und Notizen, die Duplikate sind, unterscheiden. Ich könnte ein Python-Skript schreiben, um dies zu tun, aber ich frage mich, ob es ein vorhandenes Linux-Befehlszeilentool (oder eine einfache Kombination von Tools) gibt, das dies tun würde.
Update (als Antwort auf den Kommentar von mfinni ): Die Dateien befinden sich alle in einem einzigen Verzeichnis, daher haben sie alle unterschiedliche Dateinamen. (Sie haben jedoch alle eine gemeinsame Dateinamenerweiterung, sodass Sie sie einfach mit einem Platzhalter auswählen können.)
Antworten:
Da sind die Idioten . Aber ich benutze normalerweise eine Kombination von
find . -type f -exec md5sum '{}' \; | sort | uniq -d -w 36
quelle
find . -name "*.csv" | xargs md5sum | sort | uniq -D -w 34
(Ich habe uniq -D verwendet und ich bevorzuge xargs, um -exec zu finden.)xargs
Dateinamen mit Leerzeichen funktioniert eine solche Verwendung nicht, bei Verwendung-exec
jedoch. Die Verwendung-type f
als zusätzliches Argument fürfind
(kann zusammen mit verwendet werden-name
) schränkt die Suche auf Dateien ein.Nun, es gibt FSlint - was ich für diesen speziellen Fall nicht verwendet habe, aber ich sollte in der Lage sein, damit umzugehen: http://en.flossmanuals.net/FSlint/Introduction
quelle
Sie möchten mit ziemlicher Sicherheit nicht jedes Dateipaar unterscheiden. Sie möchten wahrscheinlich so etwas wie md5sums verwenden, um alle Prüfsummen aller Dateien abzurufen und diese an ein anderes Tool weiterzuleiten, das nur doppelte Prüfsummen zurückmeldet.
quelle