chtoasty

Jede 6 Zeile aus txt File auslesen

geschlossengelöstFrageBatch, Shell Entwicklung
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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 53978

Url: https://administrator.de/forum/jede-6-zeile-aus-txt-file-auslesen-53978.html

Ausgedruckt am: 09.07.2025 um 02:07 Uhr

bastla
bastla 13.03.2007 um 18:21:05 Uhr
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:
@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
	)
)
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
Biber
Biber 13.03.2007 um 21:40:01 Uhr
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:

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
CHToasty
CHToasty 14.03.2007 um 14:05:36 Uhr
Hallo bastla & Biber

Vielen Dank für die schnelle Antwort, hat alles super geklappt. Habe >>output.txt noch eingebaut.
@echo off & setlocal enabledelayedexpansion
set /a Zeile=0
for /f "delims=" %%i in ('type neutest.txt') do (  
    set /a Zeile+=1
    if !Zeile!==6 (
        set /a Zeile=0
        echo %%i  

    )  >>output.txt
)
Schöner Tag & Grüsse
Toasty