Ich habe eine 40 MB CSV-Datei mit 50.000 Datensätzen. Es ist eine riesige Produktliste. Jede Zeile hat fast 20 Felder. [Artikel-Nr., UPC, Desc usw.]
Wie kann ich,
a) Suchen und drucken Sie doppelte Zeilen. [Diese Datei ist eine große angehängte Datei, also habe ich mehrere Header in der Datei, die ich entfernen muss, also wollte ich genaue Zeilen wissen, die zuerst dupliziert werden.]
b) Suchen und drucken Sie doppelte Zeilen basierend auf einer Spalte. [Prüfen Sie, ob ein UPC mehreren Produkten zugeordnet ist]
Ich muss den Befehl oder das Skript auf dem Server ausführen, und ich habe Perl und Python installiert. Selbst ein Bash-Skript oder Befehl funktioniert auch für mich.
Ich muss die Reihenfolge der Zeilen nicht beibehalten. usw.
Ich habe es versucht,
sort largefile.csv | uniq -d
um die Duplikate zu bekommen, aber ich bekomme nicht die erwartete Antwort.
Idealerweise hätte ich gerne ein Skript oder einen Befehl, aber wenn jemand einen anderen Vorschlag hat, wäre das auch großartig.
Danke
Siehe: Entfernen Sie doppelte Zeilen aus einer großen Datei in Python über Stack Overflow
Hier mein (sehr einfaches) Skript, um es mit Ruby & amp; Rake Gem.
Erstellen Sie zuerst eine RakeFile und schreiben Sie diesen Code:
%Vor%Dann um es in der ersten Spalte zu verwenden
%Vor%Und es auf der zweiten (zum Beispiel)
zu verwenden %Vor%Für den zweiten Teil: Lesen Sie die Datei mit Text :: CSV in einen Hash-Schlüssel auf Ihrem eindeutigen Schlüssel, prüfen Sie, ob ein Wert für den Hash vor dem Hinzufügen vorhanden ist. Etwas wie das:
data (muss nicht sortiert werden), in diesem Beispiel müssen die ersten beiden Spalten eindeutig sein:
%Vor%code:
%Vor%Was druckt so etwas aus:
%Vor%