Jede 6 Zeile aus txt File auslesen
Hallo
Ich würde gerne aus folgendem txt (orginal 12MB) jede 6 Zeile auslesen.
Codeschnipsel:
--> PC no code !
--> PC
--> PC
--> PC
--> PC TT=___30ms MG=_98% n=_1 AK=1
--> PC 0110999966
--> PC 25IL 100% ST=0 CP=_50 CL=10 CA=__6 CS=__5 CK=__6 DI=R
--> PC
--> PC
--> PC TT=___30ms MG=_98% n=_1 AK=1
--> PC 0110999959
--> PC 25IL 100% ST=0 CP=_50 CL=10 CA=__6 CS=__6 CK=__6 DI=R
--> PC
--> PC
Das Resultat müsste dann so aussehen.
--> PC no code !
--> PC 0110999966
--> PC 0110999959
usw.
Ich hab es mal mit dem Befehl
find /v /i "" test.txt >textfilename.txt
ausprobiert. Denke das würde so auch funktionieren, existiert da nicht ein einfacherer Befehl der jede 6 Zeile ausliest?
Würde mich über eine Antwort freuen.
Gruss Toasty
Ich würde gerne aus folgendem txt (orginal 12MB) jede 6 Zeile auslesen.
Codeschnipsel:
--> PC no code !
--> PC
--> PC
--> PC
--> PC TT=___30ms MG=_98% n=_1 AK=1
--> PC 0110999966
--> PC 25IL 100% ST=0 CP=_50 CL=10 CA=__6 CS=__5 CK=__6 DI=R
--> PC
--> PC
--> PC TT=___30ms MG=_98% n=_1 AK=1
--> PC 0110999959
--> PC 25IL 100% ST=0 CP=_50 CL=10 CA=__6 CS=__6 CK=__6 DI=R
--> PC
--> PC
Das Resultat müsste dann so aussehen.
--> PC no code !
--> PC 0110999966
--> PC 0110999959
usw.
Ich hab es mal mit dem Befehl
find /v /i "" test.txt >textfilename.txt
ausprobiert. Denke das würde so auch funktionieren, existiert da nicht ein einfacherer Befehl der jede 6 Zeile ausliest?
Würde mich über eine Antwort freuen.
Gruss Toasty
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 53978
Url: https://administrator.de/contentid/53978
Ausgedruckt am: 26.11.2024 um 17:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo CHToasty und willkommen im Forum!
Wenn die entsprechenden Zeilen kein spezielles Merkmal haben, wirst Du mit einem "find" wohl nicht zum Ziel kommen. Versuch es vielleicht eher so:
Hinweis: Leerzeilen werden nicht gezählt.
Zum Erstellen der neuen Datei beim Aufruf der Batch-Datei dann einfach eine Umleitung (>textfilename.txt ) anhängen.
HTH
bastla
Wenn die entsprechenden Zeilen kein spezielles Merkmal haben, wirst Du mit einem "find" wohl nicht zum Ziel kommen. Versuch es vielleicht eher so:
@echo off & setlocal enabledelayedexpansion
set /a Zeile=0
for /f "delims=" %%i in ('type test.txt') do (
set /a Zeile+=1
if !Zeile!==6 (
set /a Zeile=0
echo %%i
)
)
Zum Erstellen der neuen Datei beim Aufruf der Batch-Datei dann einfach eine Umleitung (>textfilename.txt ) anhängen.
HTH
bastla
Moin CHToasty,
wilkommen im Forum auch von mir.
Fussnote zu bastla's Lösung:
Falls aber Leerzeilen auch mitgezählt werden müssen, hätte ich folgenden Oneliner vom CMD-Prompt aus anzubieten:
Das Prinzip:
- Die test.txt wird nach allen Zeilen mit FindStr durchsucht und durchnummeriert [im Format "nnn:Zeileninhalt"]
- Der erste Teil ("nnn"), die Zeilennummer wird mit dem Modulo-Operator durch 6 geteilt.
- wenn der Rest gleich 0 ist,d.h. die Zeilennummer ein Vielfaches von 6 ist, wird der Zeileninalt angezeigt.
Wenn Du an das Ende der CMD-Zeile noch ein ">>output.txt" hängst, hast Du das Ergebnis in einer Datei.
Falls Du es für sinnvoll hältst, diese eine Zeile als Batchdatei dauerhaft aufzubewahren, dann alle %-Zeichen durch "%%" ersetzen.
Gruss
Biber
wilkommen im Forum auch von mir.
Fussnote zu bastla's Lösung:
Falls aber Leerzeilen auch mitgezählt werden müssen, hätte ich folgenden Oneliner vom CMD-Prompt aus anzubieten:
for /F "delims=: tokens=1,2" %i in ('findstr /n "." test.txt') do @for /f %a in ('@set /a "%i % 6"') do @if [%a]== @echo %j
Das Prinzip:
- Die test.txt wird nach allen Zeilen mit FindStr durchsucht und durchnummeriert [im Format "nnn:Zeileninhalt"]
- Der erste Teil ("nnn"), die Zeilennummer wird mit dem Modulo-Operator durch 6 geteilt.
- wenn der Rest gleich 0 ist,d.h. die Zeilennummer ein Vielfaches von 6 ist, wird der Zeileninalt angezeigt.
Wenn Du an das Ende der CMD-Zeile noch ein ">>output.txt" hängst, hast Du das Ergebnis in einer Datei.
Falls Du es für sinnvoll hältst, diese eine Zeile als Batchdatei dauerhaft aufzubewahren, dann alle %-Zeichen durch "%%" ersetzen.
Gruss
Biber