findstr Problem

F

Frosch2010

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
 
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ß
 
Code:
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:
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
 
Code:
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
 
Du könntest höchstens eine Schleife verwenden:
Code:
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ß
 
Zurück