Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

CSV-Dateien vergleichen und gemeinsame Zeilen finden

InvisibleBot / 5 Antworten / Flachansicht Nickles

Hallo,

ich habe 2 CSV-Dateien (Datei A mit 1300 Zeilen, Datei B mit 6700 Zeilen) und muss herausfinden, welche Zeilen in beiden Dateien enthalten sind.

Also in der Form, dass für jede einzelne Zeile aus Datei A verglichen wird, ob diese Zeile auch irgendwo in Datei B steht. Wenn ja, soll die Zeile in eine dritte Datei ausgegeben werden.

Hab eine Weile gegoogelt, aber fast nur Lösungen gefunden die Unterschiede finden. Ich dachte dass der Batchbefehl findstr das eigentlich können sollte, aber der vergleicht wohl nicht jede Zeile einzeln mit der ganzen Datei B sondern die einzelnen Zeilen direkt miteinander. Je nachdem wie ich findstr konfiguriere bekomme ich daher als Ausgabe entweder eine leere Datei oder den kompletten Inhalt von Datei A.

Winmerge zeigt mir die gemeinsamen Zeilen schön an, allerdings habe ich keine Möglichkeit gefunden die dann herauszufiltern und auszugeben.

Kann mir jemand auf die Sprünge helfen?

- Beat the machine that works in your head! -
bei Antwort benachrichtigen
mawe2 InvisibleBot „CSV-Dateien vergleichen und gemeinsame Zeilen finden“
Optionen

Man könnte beide Dateien in eine Excel-Tabelle kopieren.

Inhalt von Datei A in Spalte A einfügen, Inhalt von Datei B in Spalte B einfügen.

In Spalte C (Zelle C2) liefert die Formel*

=WENNFEHLER(SVERWEIS(A2;$B$2:$B$440;1;0);"")

die Datensätze aus Spalte A, die in Spalte B ebenfalls vorhanden sind.

(Das sieht dann so ähnlich aus wie in WinMerge.)

Den Inhalt von Spalte C kann man kopieren und in eine andere Datei einfügen (ggf. vorher Leerzellen ausfiltern).

Gruß, mawe2

* Die Formel muss natürlich aus C2 nach unten kopiert werden (in meinem Beispiel bis zur Zeile 440, in Deinem Beispiel wahrscheinlich bis zur Zeile 6700 oder 6701). Zeile 1 enthält Spaltenüberschriften.

bei Antwort benachrichtigen