Datum: 2007-05-28
Quelle: mrunix.de
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.
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
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.