simple Frage zu regex

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Methos
Beiträge: 87
Registriert: 05.12.2003 13:43:14

simple Frage zu regex

Beitrag von Methos » 11.06.2005 17:12:48

wie gesagt wahrscheinlich ganz simpel :)

möchte folgendes mit egrep aus einer Datei holen.
[05/Jun/2005:10:37:32

versuch das ganze mit

Code: Alles auswählen

egrep '\d' test.log

erhalte allerdings gar nichts. mit \w klappts aber das sollte doch eigenltich so klappen oder?

Benutzeravatar
godsmacker
Beiträge: 902
Registriert: 16.03.2003 21:50:26
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von godsmacker » 11.06.2005 17:19:27

\d matched auf ein digit, \w auf einen Buchstaben, - und IIRC.
Wenn Du etwas wie '[05/Jun/2005:10:37:32' matchen willst, dann wird's etwas komplexer:

\d{2}\/\w{3}\/\d{4}(:\d{2}){3}

Gruesse,
Flo.

Methos
Beiträge: 87
Registriert: 05.12.2003 13:43:14

Beitrag von Methos » 11.06.2005 17:25:09

also wenn ich ein

egrep '\d{2}' ausführe erhalte ich schon mal gar nichts.

Den obigen Befehl könnte ich doch aber auch so ausführen oder?

egrep '\d\d'

Benutzeravatar
godsmacker
Beiträge: 902
Registriert: 16.03.2003 21:50:26
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von godsmacker » 11.06.2005 17:30:14

Ja, \d{2} entspricht \d\d. Ich bin mir nicht sicher wie weit grep Regex denn beherrscht. Die obige Regex sollte aber Perl kompatibel sein.

Methos
Beiträge: 87
Registriert: 05.12.2003 13:43:14

Beitrag von Methos » 11.06.2005 20:51:59

tja egrep klappt leider irgendwie nicht grml :( weiß noch jemand Rat?

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Beitrag von fuzzy » 11.06.2005 21:29:03

Hallo Methos,
sorry ich habe die Frage irgendwie nicht verstanden, wie sieht die Datei vorher aus und wie soll sie nachher aussehen? ...über je 5 Zeilen würde ich mich freuen :wink:

Gruß fuzzy

Benutzeravatar
h-man
Beiträge: 745
Registriert: 05.02.2003 13:10:08
Wohnort: Berlin
Kontaktdaten:

Beitrag von h-man » 11.06.2005 21:54:58

Wenn es perl-like sein soll:

egrep --help:

Regexp selection and interpretation:
-E, --extended-regexp PATTERN is an extended regular expression
-F, --fixed-strings PATTERN is a set of newline-separated strings
-G, --basic-regexp PATTERN is a basic regular expression
-P, --perl-regexp PATTERN is a Perl regular expression
-e, --regexp=PATTERN use PATTERN as a regular expression
.....
Nieder mit der Schwerkraft.

Methos
Beiträge: 87
Registriert: 05.12.2003 13:43:14

Beitrag von Methos » 12.06.2005 14:16:56

es soll ansich ja nichts verändert werden, möchte nur logcheck etwas anpassen und noch zusätzliche Sachen freischalten.
Aber sobald ich die Zeile mit dem Datum eingebe klappt es nicht mehr.
Filter ich ohne Datum passt es.

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Beitrag von fuzzy » 12.06.2005 19:06:59

Hallo Methos,
meinst Du soetwas?

Code: Alles auswählen

fuzzy@sid:/tmp$ cat test.log 

wie gesagt wahrscheinlich ganz simpel Smile
möchte folgendes mit egrep aus einer Datei holen.
[05/Jun/2005:10:37:32  sid kernel: EXT3 FS on hdb2, internal journal
öaslkd asödlk asdölk ajsdöflka sjdf
Code:
egrep '\d' test.log
und Du möchtest z.B. nach "diesem Datum" und "Code" suchen?

Code: Alles auswählen

fuzzy@sid:/tmp$ egrep "Code|\[[0-9]{2}\/[[:alnum:]]{3}\/[0-9]{4}\:[0-9]{2}\:[0-9]{2}\:[0-9]{2}" test.log 
[05/Jun/2005:10:37:32  sid kernel: EXT3 FS on hdb2, internal journal
Code:
...sofern das die Frage war, geht es :wink:
...ich hoffe hier lesen noch einige mit, die diesen "Wust" "entschlacken" können :wink:

Gruß fuzzy

PS: ist diese Zeile am Anfang oder nicht -> eventuell noch "Code|^\[[..."

Methos
Beiträge: 87
Registriert: 05.12.2003 13:43:14

Beitrag von Methos » 13.06.2005 11:26:20

Hallo fuzzy,

vielen Dank. Das hat nun geklappt.

schönen Tag noch

Antworten