findstr Beispiel: Bestimmte Zeilen ausschließen

Manchmal muss man mit Hilfe des Tools findstr bestimmte Zeilen ausschließen aus einer langen Liste von Daten. Dies will ich hier an einem kleinen Beispiel zeigen. Angenommen, man hat eine Liste an Zeilen wie diese hier:

(TR3919) Power '1' has been deployed to version '1'
(TR9102) Power '2' has NOT been deployed to version '2'
Random text and 13773r5, with a big error…
(TR1337) complicated
(TR1239) error

Und nun möchte man alle Zeilen bekommen, die entweder mit (TRXXXX) anfangen (wobei XXXX eine Zahl zwischen 0000 und 9999 sein kann) oder die ein error enthalten. Zeilen, die ein has been deployed enthalten, sollten rausgefiltert werden. Das kann man mit folgendem Befehl erreichen:

findstr "(TR[0-9][0-9][0-9][0-9]) error" "data1.txt" | findstr /V /C:"has been deployed"

Der erste findstr-Befehl sucht alle Zeilen heraus, die ein (TRXXXX) oder ein error enthalten. Nun muss man noch die Zeilen herausfiltern, die ein has been deployed enthalten und das erreicht man mit Hilfe des zweiten findstr-Befehls.

Der Parameter /V dient dazu, all jene Zeilen zu finden, die den angegeben String nicht enthalten. Der Parameter /C gibt an, dass nach genau diesem String, also Zeichen für Zeichen genau, gesucht wird. Bzw. in diesem Fall soll also genau dieser String nicht dabei sein (eben wegen dem Parameter /V).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.