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-Key: 152387

Url: https://administrator.de/contentid/152387

Printed on: April 18, 2024 at 18:04 o'clock

Mitglied: 93578
93578 Oct 05, 2010 at 11:49:02 (UTC)
Goto Top
Habe das Problem gelöst:

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

face-wink
Member: Biber
Biber Oct 05, 2010 at 12:00:28 (UTC)
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
Mitglied: 93578
93578 Oct 05, 2010 at 12:12:26 (UTC)
Goto Top
Danke für dein Typ, Biber! face-smile

Ich bleibe aber beim "comm"-Befehl.
Member: pieh-ejdsch
pieh-ejdsch Oct 05, 2010 at 18:13:26 (UTC)
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