nowologix
Goto Top

In Textdatei bestimmte Zahlen-Wildchar Kombination finden.

Lange Gesucht aber nie eine Antwort zu meine Frage gefunden.

Hallo Admin-Team

Ich hab ein ganz spezielles Anliegen
Ich muss in einer Textdatei aus jeder Zeile die 12stelligen Nummer herauskopieren.
Das Schema ist dieses:

WCK2lxx5 mp3 german sony 000004000100
WFK51g avi,mpeg,mpg4 german davideo 195552033328

Und am Ende sollte ich in einer Textdatei nurnoch:
000004000100
195552033328
stehen haben.
(Sogar noch gekürzt, eigentlich muss ich nur die ersten 8Stellen herauskopieren.)
Demnach sollte das hier herauskommen:
00000400
19555203

Ist das zu realisieren ?


Grüße Nowo

Content-ID: 120148

Url: https://administrator.de/forum/in-textdatei-bestimmte-zahlen-wildchar-kombination-finden-120148.html

Ausgedruckt am: 23.12.2024 um 12:12 Uhr

Biber
Biber 09.07.2009 um 21:41:27 Uhr
Goto Top
Moin Nowologix,

der einzige für einen Algorithmus relevante Sachverhalt scheint doch zu sein,
dass diese Ziffernfolge
  • immer mindestens 8 Zeichen lang ist
  • immer als letztes "Feld" in einer Zeile steht

Oder gibt es auch dabei noch Ausnahmen?

Falls nicht, dann wäre das Gröbste mit einer CMD-Zeile erledigt:
[Demo am CMD-Prompt; einzugebene Zeilen durch ein ">" gekennzeichnet]
>echo WCK2lxx5 mp3 german sony 000004000100>nowo.txt
>echo WFK51g avi,mpeg,mpg4 german davideo 195552033328>>nowo.txt

>for /f "tokens=1-8" %a in (nowo.txt) do @for /f %i in ("%h %g %f %e %d %c %b %a") do @echo %i  
000004000100
195552033328

:::: und wenn es nur die ersten 8 Zeichen sein sollen:
>for /f "tokens=1-8" %a in (nowo.txt) do @for /f %i in ("%h %g %f %e %d %c %b %a") do @set "x=%i" & @echo !x:~0,8!  
00000400
19555203

Grüße
Biber
Nowologix
Nowologix 10.07.2009 um 14:31:49 Uhr
Goto Top
Danke für die schnelle Antwort.
Ja leider gibt es dort ausnahmen.
Die Ziffern stehen nicht immer als letztes.

Fakt ist nur: Sie haben immer 12 Zeichen, beginnen immer mit einer 0 und stehen irgendwo in der Zeile.

Gibts dafür eine Lösung ? Der script von dir funktioniert leider nicht (der parameter /F ist syntaktisch an dieser stelle nicht einzubringen.)


Nowo
80220
80220 10.07.2009 um 15:06:50 Uhr
Goto Top
Du musst das ">"-Zeichen vor for am Zeilenanfang wegnehmen, das ist da irrtümlich enthalten.
Nowologix
Nowologix 10.07.2009 um 15:17:32 Uhr
Goto Top
habe ich schon, auch ohne das Zeichen funktioniert es nicht :- (
80220
80220 10.07.2009 um 15:24:03 Uhr
Goto Top
Wie hast du das denn ausprobiert, in der Konsole oder mit einem Batchprogramm?
Nowologix
Nowologix 10.07.2009 um 15:46:50 Uhr
Goto Top
haaa es funktioniert o.O
wie kann ich es in einem batch programm zum laufen bringen ???
Biber
Biber 10.07.2009 um 16:42:36 Uhr
Goto Top
Moin Nowologix,

in einem Batch müssen die %-Zeichen vor allen FOR-Anweisungsvariablen durch %% ersetzt werden. (%%i statt %i etc).

Und dass mein ">" den Prompt darstellen sollte, schreib ich oben noch mal dran.

BTW, wozu denn die Frage nach dem Batch? Ist doch nur eine Zeile.

Wenn Du einmal das Prinzip verstanden hast, dann kannst Du es immer wieder spontan runtertippseln.

Grüße
Biber