Interface herrausfinden...
|
Seitenanfang |
Hi, ich will Log files durchsuchen und aus einer Spalte das Interface ermitteln, leider bekomme ich bei meinem Versuch mehr als mir lieb ist. if ($_ =~ m/^(([lo]|[eth]|[hme]|[site])[0-9]?:?[0-9]?)/) { $iface=$1; }
Sowas in der Art erwarte ich
lo eth0 eth0:1 hme0 hme0:1 site0 site0:1
Wie lautet der Suchausdruck richtig?Gruß Marko
Datum: 03.02.2005-15:31

|
re: Interface herrausfinden...
|
Seitenanfang |
| Wie sieht die Logdatei aus, was bekommst du mehr... ? Aber ich tue mal raten... if(/^((?:lo|eth|hme|site)\d?:?\d?)/){ $iface = $1; }
[lo] [eth] [hme] etc. sind Zeichenklassen, [eth] entspricht nicht 'eth' sondern 'Das Zeichen kann e, t oder h sein.' [0-9] entspricht "Das Zeichen kann eine Zahl von 0 bis 9 sein", das waere das gleiche als wuerdest du [0123456789] schreiben, statt [0-9] kannst du aber auch \d schreiben.
Datum: 03.02.2005-19:12

|
re: Interface herrausfinden...
|
Seitenanfang |
Was macht eigendlich das Fragezeichen, Doppelpunkt am Anfang des Suchausdrucks? ^((?:
Gruß Marko
Datum: 03.02.2005-19:58

|
re: Interface herrausfinden...
|
Seitenanfang |
| Mit (?: ... ) kannst du genauso wie mit ( ) gruppieren dabei wird aber nichts in den Rueckwaertsreferenz- (Backreference-)Variablen gespeichert. Ergo ist
(?:\d+)
identisch mit
(\d+)
nur wird dabei nichts in $1 (etc.) gespeichert.
Datum: 04.02.2005-01:12

|