joe-nase

Textdateien über die ersten Zeichen der Zeilen vergleichen und fehlende Zeilen in neuer Datei ausgeben

Hallo zusammen,
erstmal vielen Dank für Euer Forum!!! Hat mir schon manche Anregung und/oder Richtung gezeigt.

Mein Anliegen betrifft Batch-Programmierung:
Der Thread Nr.150811 hat mir schon grundlegend weiter geholfen. Mit
fehlt mir nur noch die Möglichkeit in Abhängigkeit der ersten 6 Zeichen pro Zeile die Auswertung zu fahren.
Mit DELIMS= wird z.B. die gefundene Zeile auch noch ab dem Zeichen beschnitten.

Kann mir dazu jemand einen Tipp geben?-

PS:
Die Zeichen ab der 7. Stelle sind für die Auswertung irrelevant
Die ersten 6 Zeichen beinhalten Hex-Werte die aus file1 mit file2 verglichen werden sollen - und nur die in file1 NICHT vorhandenen Hex-Werte die mit file2 kommen sollen in das file3 geschrieben werden.
oder: die in file2 vorhanden Hex-Werte, die aber bereits in file1 vorhanden sein können, sollen nicht berücksichtigt werden.

Schon mal besten Dank im Voraus.
Gruß Helmut.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 499921

Url: https://administrator.de/forum/textdateien-ueber-die-ersten-zeichen-der-zeilen-vergleichen-und-fehlende-zeilen-in-neuer-datei-ausgeben-499921.html

Ausgedruckt am: 28.04.2025 um 15:04 Uhr

141320
Lösung 141320 30.09.2019 aktualisiert um 15:15:28 Uhr
Goto Top
Hi Helmut.
@echo off &setlocal ENABLEDELAYEDEXPANSION
set "file1=D:\test.txt"  
set "file2=D:\test2.txt"  
set "file3=D:\test3.txt"  
for /f "usebackq delims=" %%a in ("%file1%") DO (set "line=%%a" &findstr /ilbc:"!line:~0,6!" "%file2%" >null 2>&1 || >>"%file3%" echo.%%a)  
Obwohl ich heutzutage doch gleich zur Powershell / Bash & Co. greifen würde, Powershell-Beispiel:
compare (gc 'D:\file1.txt') (gc 'D:\file2.txt') -Property {$_.Substring(0,6)} -PassThru | ?{$_.SideIndicator -eq '<='} | sc 'D:\file3.txt'  
Gruß
joe-nase
joe-nase 30.09.2019 um 16:54:26 Uhr
Goto Top
Hallo nc6400!
Vielen vielen Dank. Hat mit meinen Testdaten funktioniert. Werde dann mal mein >67.000-Zeilen-Master durchforsten lassen face-wink)) (jou, wärgli!)
Die Powershell-Lösung werde ich mal im Auge behalten und mir aufdröseln - vllt. gibt es auch noch einen schönen Zeitunterschied.
Vielen Dank nochmals und eine gute Zeit noch - auch für die Mitstreiter...
Gruß Helmut.
joe-nase
joe-nase 30.09.2019 um 21:54:50 Uhr
Goto Top
- Hallöle - nochmal vielen Dank an nc6400!
dank der Begrenzung auf 6 Zeichen klappt das alles auch noch sehr schnell...
für die Statistiker:

acer d260 IntelAtom 1,6 GHz (512KB Cache) Win10/32bit
Master 67078 Zeilen mit
neu 3411 Zeilen verglichen :
CMD: 9 min
PS : 6 min

Begeisterung!
(Diese Zeit kann ich 4x im Jahr investieren face-wink )