perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 40
Click for quality!




10.02.2012 / 09:33

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragInterface 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

Beitragre: 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

Beitragre: Interface herrausfinden...
Seitenanfang
Was macht eigendlich das Fragezeichen, Doppelpunkt am Anfang des Suchausdrucks?


^((?:

Gruß
Marko

Datum: 03.02.2005-19:58

Beitragre: 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

-






-
-