egrep-Frage

N

Nad24

Grünschnabel
Hallo,
ich habe Logfiles in folgendem Format:

[01/09/2008 12 00:00:11] warning execution time 2 s

Da die logfiles sehr groß sind brauche ich eine Möglichkeit mit egrep nur
1- Zeilen mit "warning"
2- Zeilen bei denen die execution time > 10s
Beispiel:
[01/09/2008 12 00:00:11] warning execution time 34 s

Ich komme hier leider nicht weiter und benötige eure Hilfe.
Danke im Vorraus.
Nad.
 
Hi

Ich hoffe mal das das bei dir funktioniert :

Code:
grep warning /dein/logfile | egrep -r "[1-9][0-9]+ s"

Das sucht erst alle warnings aus dem file und filtert danach alle Zahlen die mindestens 2 stellig sind und mit mindestens 1 anfangen raus.

Gruß
Psyjo
 
Zuletzt bearbeitet:
DANKE Psyjo. Genau was ich brauchte :)
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Vor dem "s" sind aber manchmal keine "Leerzeichen" vorhanden.
Kann man das auch abfangen?
 
Zuletzt bearbeitet:
Wenn man schon extra "egrep" verwendet, dann eben nach beiden Ausdrücken suchen, einmal mit und einmal ohne Leerzeichen.

Zumindest der einfachste Ansatz IMHO
 
Hi Rain_Maker,

das widerspricht doch nicht meiner Frage.
 
Nein, das war ja auch eine Antwort auf Deine Frage.

Du nutzt das richtige Tool (egrep) und musst jetzt nur nach beiden Möglichkeiten suchen, fertig.
 
Vorsicht, ungetestet:
Code:
grep warning /dein/logfile | egrep -r "[1-9][0-9]+ ?s"

Durch das Fragezeichen ist das was davor kommt, in dem Fall ein Leerzeichen, optional.
 
Vielen Dank. Ich hab jetzt. Ich habe den Fehler gemacht und das Leerzeichen in [ ] gesetzt.
 
Der allgemeine "Mehrfachsuchansatz" wäre:

Code:
egrep -Optionen "Ausdruck 1"\|"Ausdruck 2"\|"Ausdruck 3" #usw.

(Nur falls mal jemand das hier querliest und nach mehreren bzw. unterschiedlichen Ausdrücken sucht)
 

Ähnliche Themen

[Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

AWK Tip gesucht

xrandr: cant open display

Mein Server versendet SPAM in Massen

Software RAID 1 verkleinern

Zurück
Oben