Wert einer Option in einer Konfig-Datei ersetzen

Datum: 2007-05-28
Quelle: mrunix.de

Worum ging es?

In einer Konfig-Datei, die Zeilen der Form Schlüssel Wert enthält, soll der Wert eines Schlüssels durch einen anderen Wert ersetzt werden. Das Ergebnis soll in der gleichen Datei landen.

Code
awk '$1=="lcp-echo-interval" {$2="100"} {print}' options >options.tmp && \
  mv options.tmp options
# sed
sed 's/\(lcp-echo-interval \)[0-9]*/\1100/' options >options.tmp && \
  mv options.tmp options
Beschreibung

Da die Lösung für ein embedded system laufen sollte, habe ich auf erweiterte reguläre Ausdrücke und spezielle Optionen des sed (wie -i, um direkt in Place zu editieren) verzichtet. Es wird nach einer Zeile gesucht, die im Feld 1 den gesuchten Schlüssel beinhaltet, hier wird der Wert (2. Feld) durch den neuen Wert ersetzt. Danach werden alle Zeilen wieder ausgegeben.