2 große TXT Dateien vergleichen und Unterschiede in andere Datei schreiben
Hallo Zusammen,
ich habe in einem älteren Eintrag schon einen guten Ansatz zur Lösung meines Problems gefunden, allerdings funktioniert das nur mit relativ wenigen Daten.
Folgendes ist die Herausforderung:
Ich habe zwei Textdateien alt.txt und neu.txt
Inhalt von alt.txt:
LO3
LO2
LO4
LO1
LO5
Inhalt von neu.txt:
LO2
LO1
LO4
LO3
LO7
LO12
Beide Dateien sollen nun miteinander verglichen werden.
Als Ergebnis benötige ich dann zwei Dateien. In einer sollen nur die Zeilen stehen, die nur in "neu.txt" vorhanden sind, aber nicht in "alt.txt" und in der anderen sollen nur die Zeilen stehen, die nur in "alt.txt" vorhanden sind, aber nicht in "neu.txt".
Beispiel:
Inhalt von "nur_in_neu.txt":
LO7
LO12
Inhalt von "nur_in_alt.txt":
LO5
Genau das erreiche ich mit einer Batch-Datei die ich mir gebastelt habe:
Funktioniert hervorragend und ist genau das was ich brauche.
Jetzt kommt aber der haken an der Geschichte:
Jede der beiden Text-Dateien beinhaltet rund 235.000 Zeilen, wobei jede Zeile zwischen und 8 und 11 Zeichen hat.
Das ganze läuft dann natürlich ganz schön lange, und ich hoffe mal, dass jemand hier vielleicht eine etwas elegantere Lösung parat hat.
Ich habe das schon mit rund 62.000 Zeilen pro Datei getestet. Da lief das Batch-File 36 Minuten!
Es würde mir theoretisch auch ausreichen, nur eine Datei als Ergebnis zu bekommen. Wichtig ist aber, dass ich genau sehen können muss, welche Zeile NUR in "neu.txt" vorhanden ist und welche Zeile nur in "alt.txt" vorhanden ist.
Vielen Dank schon mal für eure Anregungen =)
ich habe in einem älteren Eintrag schon einen guten Ansatz zur Lösung meines Problems gefunden, allerdings funktioniert das nur mit relativ wenigen Daten.
Folgendes ist die Herausforderung:
Ich habe zwei Textdateien alt.txt und neu.txt
Inhalt von alt.txt:
LO3
LO2
LO4
LO1
LO5
Inhalt von neu.txt:
LO2
LO1
LO4
LO3
LO7
LO12
Beide Dateien sollen nun miteinander verglichen werden.
Als Ergebnis benötige ich dann zwei Dateien. In einer sollen nur die Zeilen stehen, die nur in "neu.txt" vorhanden sind, aber nicht in "alt.txt" und in der anderen sollen nur die Zeilen stehen, die nur in "alt.txt" vorhanden sind, aber nicht in "neu.txt".
Beispiel:
Inhalt von "nur_in_neu.txt":
LO7
LO12
Inhalt von "nur_in_alt.txt":
LO5
Genau das erreiche ich mit einer Batch-Datei die ich mir gebastelt habe:
(for /f "delims=" %%i in (alt.txt) do @findstr /i /C:"%%i" neu.txt>nul || @echo %%i)>nur_in_alt.txt
(for /f "delims=" %%i in (neu.txt) do @findstr /i /C:"%%i" alt.txt>nul || @echo %%i) >nur_in_neu.txt
pause
Funktioniert hervorragend und ist genau das was ich brauche.
Jetzt kommt aber der haken an der Geschichte:
Jede der beiden Text-Dateien beinhaltet rund 235.000 Zeilen, wobei jede Zeile zwischen und 8 und 11 Zeichen hat.
Das ganze läuft dann natürlich ganz schön lange, und ich hoffe mal, dass jemand hier vielleicht eine etwas elegantere Lösung parat hat.
Ich habe das schon mit rund 62.000 Zeilen pro Datei getestet. Da lief das Batch-File 36 Minuten!
Es würde mir theoretisch auch ausreichen, nur eine Datei als Ergebnis zu bekommen. Wichtig ist aber, dass ich genau sehen können muss, welche Zeile NUR in "neu.txt" vorhanden ist und welche Zeile nur in "alt.txt" vorhanden ist.
Vielen Dank schon mal für eure Anregungen =)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 306674
Url: https://administrator.de/forum/2-grosse-txt-dateien-vergleichen-und-unterschiede-in-andere-datei-schreiben-306674.html
Ausgedruckt am: 02.02.2025 um 15:02 Uhr
6 Kommentare
Neuester Kommentar
powershell -Executionpolicy Bypass -command "compare (gc 'c:\datei1.txt') (gc 'c:\datei2.txt') | out-file 'c:\ergebnis.txt'"
Gruß Skybird
Nö nicht in dem Fall, probiers mal aus ...
Schön, dann fehl ja nur noch das gelöst hinten dran.