PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Spass mit Regular Expressions -- Problem :space:



linuxhanz
24.03.04, 13:55
Hallo;


also ich habe heute Nacht mal meine Augen verdrahtet und mich mit RegularExpressions versucht, leider viel zu umständlich:



linux:/home/hanz # ifconfig eth0|grep \fe80\:\:*|
sed -e s/inet6\ addr\:\ //g|sed -e s/Scope\:Link//g
fe80::2d0:9ff:fee3:e8de/10




linux:/home/hanz # ifconfig eth0|grep \fe80\:\:*|
sed -e s/inet6\ addr\:\ //g -e s/Scope\:Link//g
fe80::2d0:9ff:fee3:e8de/10


Hm nun ist aber eth1 in Deutsch? *Grummel*


/sbin/ifconfig eth1|grep -E '[0-9][\:\:][0-9]'|sort -u|
sed -e s/inet6\ addr\:\ //g -e s/Scope\:Link//g |grep -v eth1
fe80::220:18ff:feba:2892/10

diese Lösung nur für bash und csh:



/sbin/ifconfig eth1|grep -E '[0-9][\:\:][0-9]'|sort -u|
sed -e s/\ \ \ \ \ \ \ \ \ \ inet6\ addr\:\ //g -e s/Scope
\:Link//g |grep -v eth1
fe80::220:18ff:feba:2892/10

/home/hanz> /sbin/ifconfig eth0 | grep -E '[0-9][\:\:][0-9]' |
sort -u | sed -e s/\ \ \ \ \ \ \ \ \ \ inet6\ Adresse\:\ //g -e s/Gültigkeitsbereich\:Verbindung//g | grep -v eth0
fe80::2d0:9ff:fee3:e8de/10


einfacher:


/sbin/ifconfig eth0|grep -E '[^A-Z][0-9][\:\:][0-9]'|
awk '{ print $3 }'
fe80::2d0:9ff:fee3:e8de/10


für beide Sprachen und beide Shells:


/sbin/ifconfig eth0|grep -E '[^a-z][^\:][^A-Z][0-9]
[\:\:][0-9]'|awk '{ print $3 }'


Hm, wenn man nun nicht awk nimmt,
wie kann man den Whitespace
am Anfang einer Zeile wegbekommen?

Das sieht erstmal sehr schlecht aus: :ugly:


hanz@linux:~> /sbin/ifconfig eth0|grep -E '^[:space:]'
eth0 Link encap:Ethernet HWaddr 00:D0:09:E3:E8:DE

naja falls sich jemand die Mühe macht,
vielen Dank im Voraus.

zhna

Thomas Engelke
24.03.04, 16:24
*hüstel*

grep und sed können auch ordentliche RegEx, die POSIX-teile lass' mal stecken :)

^\s* ergibt alle Leerzeichen am Anfang der Zeile. Alternative Angabe wäre
^[\t ]* (Tab oder Space, 0- oder mehrmals).

AD!

P.S.: http://mrunix.de ist dein Freund :)