93578
Goto Top

2 Texdateien (eine kleine und eine große) zeilenweise vergleichen und die doppelte Zeilen aus der kleinen Datei löschen.

Hallo an alle!

Ich habe 2 Text-Dateien: Datei1.txt und Datei2.txt. Beide haben das gleiche Struktur:

Datei 1 (insgesamt ca. 300 Zeilen):

123456789a
123456789b
123456789c
123456789d
123456789e


Datei 2: (insgesamt ca. 21.000.000 Zeilen)

012345678a
012345678b
012345678c
123456789a
012345678d
012345678e
012345678f
012345678g
123456789e
012345678h


Nun will ich die kleine Datei (Datei1 ) mit der großen Datei (Datei 2) vergleichen, um zu überprüfen, ob in der kleinen Datei Duplikate aus der großen Datei vorhanden sind. Und falls das der Fall ist, will ich diese Duplikate aus der kleinen Datei löschen. Am Ende soll sie so aussehen:

Datei1:

123456789b
123456789c
123456789d

Dafür benutzte ich das Befehl "fc" über cmd. Nun der bricht mit der Meldung ab, dass die Dateiunterschied zu groß ist.

Ich will es mit diff und uniq Versuchen (Windows-UNIX), weiß aber nicht wie.

Für Ihre Hilfe werde ich sehr dankbar!

Sergio

Content-ID: 152387

Url: https://administrator.de/forum/2-texdateien-eine-kleine-und-eine-grosse-zeilenweise-vergleichen-und-die-doppelte-zeilen-aus-der-kleinen-152387.html

Ausgedruckt am: 18.04.2025 um 23:04 Uhr

93578
93578 05.10.2010 um 13:49:02 Uhr
Goto Top
Habe das Problem gelöst:

comm -13 gross.txt klein.txt > neu_aus_klein.txt

face-wink
Biber
Biber 05.10.2010 um 14:00:28 Uhr
Goto Top
Moin takitano,

ich denke, du machst dir und der armen fc.exe unnötig Arbeit mit dieser Strategie des "Prüfens jeder Zeile und doppelte Löschen"

Vergleiche bzw. durchsuche lieber mit FindStr.exe und Schalter /G die große Datei auf alle Zeile Zeilen, die in der kleinen Datei enthalten sind und erzeuge als Ergebnis eine neue Datei.

Grüße
Biber
93578
93578 05.10.2010 um 14:12:26 Uhr
Goto Top
Danke für dein Typ, Biber! face-smile

Ich bleibe aber beim "comm"-Befehl.
pieh-ejdsch
pieh-ejdsch 05.10.2010 um 20:13:26 Uhr
Goto Top
moin takitano,

nur um dem Beispiel von Biber nachzugehen. ( > ist der Prompt)
>findstr  /g:gross.txt klein.txt
123456789a
123456789e
gibt Dir alle Doppelten Vorkommnisse aus
>findstr /v /g:gross.txt klein.txt
123456789b
123456789c
123456789d
ist Dein gewünschte Ausgabe
>findstr /v /g:gross.txt klein.txt>neu_aus_klein.txt
ist Dein Gewünschtes Ergebnis in der Datei

Gruß Phil