Hallo, On Tue, 11 Jun 2002, Eilert Brinkmann wrote:
Um mal eine zweite Möglichkeit zu nennen:
awk -F = '/^IP=/ {print $2}' dateiname
So, der nächste kann jetzt z.B. eine Lösung in sed beitragen -- gibt noch reichlich andere Möglichkeiten... ;-)
Der Vollstaendigkeit halber z.B. mit: sed -n 's/^IP=\(.*\)/\1/p' datei sed -n '/^IP=/s/^IP="\?\([^"]*\)"\?/\1/p' datei
Ein ganz anderer Ansatz, der häufig bei Konfigurationsdateien für Shell-Skripte verwendet wird, wenn alle Konfigurationseinträge die Form Variablenname=Wert haben und jeder Name nur einmal vorkommt: Die Konfigurationsdatei im Skript einfach mit
source Dateiname
Das ist IMO die beste Methode, v.a. wenn es mehrere Variablen sind, ein einzelnes source (ein bash-builtin) ist um Groessenordnungen schneller als n-mal einen externen Prozess anzuwerfen (egal ob grep, sed oder awk). Ausserdem hat das source den grossen Vorteil, dass man problemlos mehrzeilige Variableninhalte haben kann, z.B: IPS=" 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4 " Mit einem Trick kann man dann sogar Zeilenweise kommentieren, z.B: IPS=" 10.0.0.1 # Router 10.0.0.2 # DNS # 10.0.0.3 # DNS2 10.0.0.4 # mailhost " IPS=`echo "$IPS" | sed 's/#.*//g' | xargs echo` Und obendrein lassen sich shell-funktionen definieren ;) -dnh -- 102: Code Reuse (cat a.out_header; cat) > a.out (Enno Rehling)