Zwei Textdateien miteinander zeilenweise parallel vergleichen
Ich habe eine Textdatei1, die ich mit einer anderen Textdatei2 vergleichen möchte. Die Zeilen sind in den Dateien gleich angeordnet. Also möchte ich jede Zeile aus Textdatei1 mit den Zeilen aus Textdatei2 parallel vergleichen. Ist die Zeile vorhanden, soll die nicht überschrieben werde Ist sie nicht vorhanden, soll die geschrieben werden. Mit geschachtelten for-schleifen,etwa durch
geht nicht, da die Indexes von den zwei for schleifen nicht parallel verarbeitet werden können. Gibt's da Workarounds? Ideen?
Also so ungefähr:
Textdatei2.txt:
1. String_A
2. String_B
3. String_C
Textdatei1.txt:
1. String_A
2. String_C
Also wenn die erste Zeile von der Textdatei2 (1.String_A) die gleiche ist wie diejenige von Textdatei1(1.String_A) dann soll die Zeile von der Textdatei 1 nicht überschrieben werden sonst soll sie überschrieben werden.
Wenn die zweite Zeile von der Textdatei2 (1.String_B) die gleiche ist wie diejenige von Textdatei1(1.String_C) dann soll die Zeile von der Textdatei 1 nicht überschrieben werden sonst soll sie überschrieben werden.
..usw
Danke für Eure Tipps
Gruß
dedalus2011
for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "%Textdatei2%"')
do (for /f "tokens=1* delims=:" %%j in ('findstr /n "^" "%Textdatei1%"') do set "Zeile=%%j" && echo %%i && call :Line)
geht nicht, da die Indexes von den zwei for schleifen nicht parallel verarbeitet werden können. Gibt's da Workarounds? Ideen?
Also so ungefähr:
Textdatei2.txt:
1. String_A
2. String_B
3. String_C
Textdatei1.txt:
1. String_A
2. String_C
Also wenn die erste Zeile von der Textdatei2 (1.String_A) die gleiche ist wie diejenige von Textdatei1(1.String_A) dann soll die Zeile von der Textdatei 1 nicht überschrieben werden sonst soll sie überschrieben werden.
Wenn die zweite Zeile von der Textdatei2 (1.String_B) die gleiche ist wie diejenige von Textdatei1(1.String_C) dann soll die Zeile von der Textdatei 1 nicht überschrieben werden sonst soll sie überschrieben werden.
..usw
Danke für Eure Tipps
Gruß
dedalus2011
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 188044
Url: https://administrator.de/contentid/188044
Ausgedruckt am: 24.11.2024 um 07:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo dedalus2011!
Könntest Du vielleicht noch erklären, was mit "soll/soll nicht überschrieben werden" gemeint ist und was eigentlich das gewünschte Ergebnis (ebenfalls beispielhaft dargestellt) wäre?
Interessieren könnte Dich aber jedenfalls der Beitrag Zwei Texte Zeilenweise zusammenfügen per batch ...
Grüße
bastla
Könntest Du vielleicht noch erklären, was mit "soll/soll nicht überschrieben werden" gemeint ist und was eigentlich das gewünschte Ergebnis (ebenfalls beispielhaft dargestellt) wäre?
Interessieren könnte Dich aber jedenfalls der Beitrag Zwei Texte Zeilenweise zusammenfügen per batch ...
Grüße
bastla
Naja wo wir gerade von Laufzeit sprechen.
Mir wurde gesagt das jeder Aufruf von finstr ~250ms Dauert.
Da erscheint mir ein einfaches überschreiben sehr viel einfacher.
Abgesehen davon.
In deinem Beispiel fehlt der Datei1 ja der String_B also würde der String_C ja mit String_B überschrieben werden.
Jezt wird danach auf String_C gestestet, der aber nicht mehr existiert, also würde String_D mit String_C überschrieben werden.
etc.pp.
Ich kan einfach nur empfehlen. Überschreib die Datei einfach.
Textdatein sind meistens nicht 1GB groß. Das ist nehmlich meist die Zeit wo das Warten vom Kopiervorgang nervt.
Grüße
Darkprodukt
Mir wurde gesagt das jeder Aufruf von finstr ~250ms Dauert.
Da erscheint mir ein einfaches überschreiben sehr viel einfacher.
Abgesehen davon.
In deinem Beispiel fehlt der Datei1 ja der String_B also würde der String_C ja mit String_B überschrieben werden.
Jezt wird danach auf String_C gestestet, der aber nicht mehr existiert, also würde String_D mit String_C überschrieben werden.
etc.pp.
Ich kan einfach nur empfehlen. Überschreib die Datei einfach.
Textdatein sind meistens nicht 1GB groß. Das ist nehmlich meist die Zeit wo das Warten vom Kopiervorgang nervt.
Grüße
Darkprodukt
Hallo dedalus2011!
Das klingt dann aber für mich so, wie es Darkprodukt schon interpretiert hat - soll demnach als Ergebnis der Inhalt der Textdatei 1 jenem von Textdatei 2 entsprechen (gleiche Zeilen bleiben unverändert, fehlende Zeilen werden ergänzt) oder kann es dann doch noch Unterschiede geben (weil etwa in Textdatei 1 Zeilen enthalten waren, die es in Textdatei 2 nicht gibt)?
Grüße
bastla
Das klingt dann aber für mich so, wie es Darkprodukt schon interpretiert hat - soll demnach als Ergebnis der Inhalt der Textdatei 1 jenem von Textdatei 2 entsprechen (gleiche Zeilen bleiben unverändert, fehlende Zeilen werden ergänzt) oder kann es dann doch noch Unterschiede geben (weil etwa in Textdatei 1 Zeilen enthalten waren, die es in Textdatei 2 nicht gibt)?
Grüße
bastla