46933
17.04.2007, aktualisiert am 18.04.2007
7292
21
0
aus mehreren txt. Dateien Zeilen auslesen welche mit der selben Zahl beginnen
Hallöchen alle zusammen.
Ich bin am ende.
Mein Problem sieht folgender massen aus.
ich habe fünf txt Dateien.
Die einzelnen Datensätze beginnen mit einer zehnstelligen Zahl und sind alle verschieden.
Ich möchte jetzt jedoch nur alle Datensätze auslesen und in die Datei Gesamt.txt speichern, welche als 1 Zahl von den 10 Stellen eine 2 hat.
Alle anderen sollen in eine Datei geschrieben werden mit Namen wertlos.txt.
Leider bin ich am Ende meiner Kräfte und meines Wissen
Vielleicht kann mir jemand helfen.
Schon mal danke im voraus.
Ich bin am ende.
Mein Problem sieht folgender massen aus.
ich habe fünf txt Dateien.
Die einzelnen Datensätze beginnen mit einer zehnstelligen Zahl und sind alle verschieden.
Ich möchte jetzt jedoch nur alle Datensätze auslesen und in die Datei Gesamt.txt speichern, welche als 1 Zahl von den 10 Stellen eine 2 hat.
Alle anderen sollen in eine Datei geschrieben werden mit Namen wertlos.txt.
Leider bin ich am Ende meiner Kräfte und meines Wissen
Vielleicht kann mir jemand helfen.
Schon mal danke im voraus.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 56879
Url: https://administrator.de/contentid/56879
Ausgedruckt am: 23.11.2024 um 02:11 Uhr
21 Kommentare
Neuester Kommentar
Moin ginivpj,
willkommen im Forum.
Vom CMD-Prompt aus:
-bzw. im Batch-
Aufruf mit "GetAllBeginningWith2 >gesamt.txt"
Gruss
Biber
willkommen im Forum.
Vom CMD-Prompt aus:
for /f "delims=: tokens=3" %i in ('findstr /b "2" d:\temp\*.txt') do @echo %i >>Gesamt.txt
-bzw. im Batch-
:: ---- snipp GetAllBeginningWith2.bat
for /f "delims=: tokens=3" %%i in ('findstr /b "2" d:\temp\*.txt') do @echo %%i
Aufruf mit "GetAllBeginningWith2 >gesamt.txt"
Gruss
Biber
Besorge dir grep und cat für Windows, oder wenn es geht nimm ein Linux. Grep bzw. Cat für Windows müsste mit einer Suchmaschine zu finden sein. Öffne eine Konsole, gehe in das Verzeichnis mit den Textdateien. Und gib dann folgende Befehle ein:
cat * | grep "^2" > Gesamt.txt
und für "Wertlos"
cat * | grep -v "^2" > Wertlos.txt
cat * | grep "^2" > Gesamt.txt
und für "Wertlos"
cat * | grep -v "^2" > Wertlos.txt
Na ja, mit grep und cat ist es mir auch durchaus sympathisch.
Aber der sympathische Weltmarktführer hat uns doch ein paar Regular-Expression-Features in die Findstr.exe eingebaut.
Nehmen wir die doch:
Demo am CMD-Prompt:
Also im Batch
Gruss
Biber
Aber der sympathische Weltmarktführer hat uns doch ein paar Regular-Expression-Features in die Findstr.exe eingebaut.
Nehmen wir die doch:
Demo am CMD-Prompt:
>echo GTE2345>test98.txt
>echo ABC2888>test99.txt
>echo 2345888>test97.txt
(=20:42:42 D:\temp=)
>findstr /B /R "[A-Z]*2" d:\temp\test9?.txt
d:\temp\test97.txt:2345888
d:\temp\test98.txt:GTE2345
d:\temp\test99.txt:ABC2888
Also im Batch
::----------snipp FilterNachDer2.bat
REM alle Zeilen, die mit "A-Z" gefolgt von einer "2" beginnen ins Töpfchen...
for /f "tokens=3 delims=:" %%i in ('findstr /B /R "[A-Z]*2" d:\temp\*.txt') do @echo >>gesamt.txt
REM alle Zeilen, die NICHT mit "A-Z" gefolgt von einer "2" beginnen ins Kröpfchen...
for /f "tokens=3 delims=:" %%i in ('findstr /V /B /R "[A-Z]*2" d:\temp\*.txt') do @echo >>wertlos.txt
Gruss
Biber
Moin nsc2000,
Na ja, "entwickelt".....das habe ich so nicht geschrieben...
Ich habe bewusst nur geschrieben, dass M$ ein paar Features eingebaut hat, die aufrichtigen anderen Betriebssystemen schon im letzten Jahrtausend state of the art waren.
Wie die Redmonder wohl zu dem Sourcecode gekommen sein mögen, darüber möchte ich nicht öffentlich spekulieren.
Vielleicht war es ja eine Eigenentwicklung.
Grüsse
Biber
eine Alternative zu grep entwickelt ...
Na ja, "entwickelt".....das habe ich so nicht geschrieben...
Ich habe bewusst nur geschrieben, dass M$ ein paar Features eingebaut hat, die auf
Wie die Redmonder wohl zu dem Sourcecode gekommen sein mögen, darüber möchte ich nicht öffentlich spekulieren.
Vielleicht war es ja eine Eigenentwicklung.
Grüsse
Biber
Moin ginivpj,
Du kannst den Pfad dadurch variabel halten, dass Du
Beispiel
Gruss
Biber
Du kannst den Pfad dadurch variabel halten, dass Du
- ihn nur an einer Stelle im Sourcecode stehen hast und
- ihn als optionalen Parameter (Parameter mit Default) einrichtest
Beispiel
::----------snipp FilterNachDer2.bat
@echo off & setlocal
REM ----ab hier anpassen
REM optionaler erster Parameter 1 == Pfad, wo die Daten sind
If [%1]== (Set "datenpfad=H:\Privat\test") Else Set "Datenpfad=%1"
Set "ergebnispfad=X:\Auswert"
If exist %ergebnispfad%\gesamt.txt del %ergebnispfad%\gesamt.txt
If exist %ergebnispfad%\garbage.txt del %ergebnispfad%\garbage.txt
REM ----bis hier anpassen
REM alle Zeilen, die mit "A-Z" gefolgt von einer "2" beginnen ins Töpfchen...
for /f "tokens=3 delims=:" %%i in ('findstr /B /R "[A-Z]*2" "%datenpfad%\*.txt"') do @echo >>%ergebnispfad%\gesamt.txt
REM alle Zeilen, die NICHT mit "A-Z" gefolgt von einer "2" beginnen ins Kröpfchen...
for /f "tokens=3 delims=:" %%i in ('findstr /V /B /R "[A-Z]*2" "%datenpfad%\*.txt"') do @echo >>%ergebnispfad%\wertlos.txt
::----------snapp FilterNachDer2.bat
Gruss
Biber