[Python-de] grep Logfiles mit re
Steffen Oschatz
steffen.oschatz at philips.com
Don Jan 26 13:45:33 CET 2006
Hallo,
ich bin gerade dabei, ein shell Skript in Python zu überführen, bin aber
nicht so zufrieden mit dem ersetzen eines "grep" Aufrufes.
Hier ist er :
grep "\(ERROR\)\|\(CRIT\)\|\(ALERT\)\|\(EMERG\)" ...
Wie man sieht sollen einfach alle Zeilen mit den Begriffen in
Großbuchstaben ausgegeben werden.
Der erste Versuch war:
findErr=re.compile('^.*(ERROR)|(CRIT)|(ALERT)|(EMERG).*$' ,re.M)
was natürlich gescheitert ist an dem Gruppen-Handling in re.
Eine funktionierende Lösung ist:
re.compile('^.*(?:ERROR.*$)|(?:CRIT.*$)' ,re.M)
allerdings ist hier das in die Klammer reingezogene ".*$" sehr unschön -
kann man das nicht irgendwie besser machen ?
Grüße Steffen