
Hallo, On Wed, 06 Mar 2002, Christoph Maurer wrote:
Am Mit, 06 Mär 2002 schrieb Dennis Leist:
/sbin/ifconfig ppp0 | sed -n 's/.*addr:\([0-9\.]*\).*/\1/p';
Ich möchte gerne mit sed aus /etc/named.conf die beiden forwarders auslesen, also -snip-
forwarders { 195.252.143.26; 194.192.187.132; }; [..] Wie macht man das also ?
z.B. mittels: sed 's/[^0-9]*\([0-9.]*\);/\1 /g' Das heisst: gebe nur Zahlen + '.' aus, die nach bel. vielen nicht-Zahlen stehen (die \(\) gruppieren die IP und \1 ist dann der Rueckbezug auf den Inhalt in den \(\), und mach das ganze so oft wie moeglich ("global", wird durch die "option" g gemacht). Eine kompliziertere Version kommt mit der Nachhilfe von 'xargs echo' auch mit Zeilenumbruechen und diversem "Whitespace" klar (und auch mit der ersten Version wie oben): $ echo -e ' \tforwarders { \n\t \t195.252.143.26; \t\n\t\t194.192.187.132;\t \n\t}; \t' \ | sed -n 's/[^0-9]*\([0-9.]*\)/\1 /pg' | xargs echo 195.252.143.26 194.192.187.132 $ echo 'forwarders { 195.252.143.26; 194.192.187.132; };' \ | sed -n 's/[^0-9]*\([0-9.]*\)/\1 /pg' | xargs echo 195.252.143.26 194.192.187.132 Die Version unterscheidet sich von der ersten nur darin, dass erstens die Ausgabe mittels der Option -n unterdruecktwird, und dann explizit die Zeilen mit nem "Match" durch das p hinter s///p ausgegeben werden.
Wie und den ersten Strichpunkt schmeißt Du weg?
Wie wäre sed -e 's/.*ders {\(.*\)}/\1/'|sed -e 's/;//g'
Sind aber immer noch zwei sed Aufrufe,
Geht auch einfacher: sed -e 's/.*ders {\(.*\)}/\1/;s/;//g' ^^^^^^^ zweiter Befehl nach dem s/// Alternativ kann man auch 2mal -e verwenden: sed -e 's/.*ders {\(.*\)}/\1/' -e 's/;//g'
mit sed fällt mir auch gerade keine Möglichkeit ein, daß für eine beliebige Zahl von Forwardern in einemAufruf zu lösen, mit Perl sollte sowas gehen...
s.o. natuerlich geht das, man muss nur die richtigen Muster finden ;) -dnh -- == Re: MS' rules for creating 8.3's out of "long filenames" ==
Rules? There are *rules* for this? And there was I thinking it just inserted a few random characters based on your cat's star-sign, the number of milliseconds since your last bowel movement, and the instantaneous value of the Dow Jones Index! Nothing M$ makes is _that_ accurate. -- Tanuki, Shawn Latimer