tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
606
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Frosch2010 Tutorials.de Gastzugang
    Hi Leute,
    ich habe ein Problem mit findstr.
    Und zwar würde ich gerne nach einer id Suche z.b. TEST[1-9][0-9]*
    Das heisst es könnte z.B. TEST11 vorkommen und er würde den String finden.
    Das funktioniert auch soweit. Nun mein Problem:

    Sollte der zu suchende String nicht am Zeilenanfang stehen muss vor dem TEST11 unbedingt ein Leerzeichen sein.

    Wie überprüfe ich das?

    Vielen Dank
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Das kannst du mit findstr nicht realisieren, da findstr keine Alternativen kennt.

    Du könntest natürlich die Daten doppelt analysieren und deine ID einmal am Zeilenanfang und danach nochmal nicht am Zeilenanfang mit Leerzeichen suchen.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Frosch2010 Tutorials.de Gastzugang
    Code :
    1
    
    findstr /c:" TEST11" test.txt && findstr /b "TEST11 test.txt
    wäre meine Lösung gewesen aber wird doch ein wenig komplizierter als ich gedacht habe.
    Ziel ist das auch mehrere Patterns inklusive regular Expressions gefunden werden.

    Hier weiß ich leider nicht wie ich das Leerzeichen beachte, da ich das auch shcon als Trenner zwischen den Patterns verwende. Ob es am Zeilenanfang steht bekomm ich so raus:

    Code :
    1
    
    findstr /I "^TEST-[1-9][0-9]* ^ANDERERTEST-[1-9][0-9]*" hello.txt
    Das gibt mir aus wenn TEST oder ANDERERTEST am Zeilenanfang steht
    nun würde ich gerne noch überprüfen ob
    " TEST-[1-9][0-9]" und " ANDERERTEST-[1-9][0-9]" vorkommt.

    Viele Grüße
     

  4. #4
    Frosch2010 Tutorials.de Gastzugang
    Code :
    1
    
    findstr /I "^TEST[1-9][0-9]* ^ANDERERTEST[1-9][0-9]*" test.txt && findstr /R /C:" TEST[1-9][0-9]" test.txt && findstr /R /C:" ANDERERTEST[1-9][0-9]" test.txt

    Das wäre die hässliche Lösung.
    Kann ich das noch sauberer machen ?
    Weil es halt mehr als 2 Patterns werden sollen und ich halt den 2ten Teil für jedes weitere Pattern extra angeben müsste
     

  5. #5
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Du könntest höchstens eine Schleife verwenden:
    Code :
    1
    2
    3
    4
    5
    
    for /F "tokens=*" %l in (test.txt) do (
      echo.%l| findstr ...
      echo.%l| findstr ...
      echo.%l| findstr ...
    )
    Oder du nimmst ein alternatives Programm, wie z.B. grep.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 11.01.11, 21:40
  2. Antworten: 4
    Letzter Beitrag: 22.03.06, 20:50
  3. Antworten: 0
    Letzter Beitrag: 06.10.04, 14:03
  4. PROBLEM! Pinnacle 2 GB Begrenzung Windows 2000 DC 50 PROBLEM!
    Von hennym im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 6
    Letzter Beitrag: 17.09.03, 22:09
  5. Antworten: 6
    Letzter Beitrag: 13.06.02, 12:29