sed: Ersetzen Sie einen Teil einer Linie
Wie kann man einen Teil einer Linie durch sed ersetzen?
Die Linie
DBSERVERNAME xxx
sollte ersetzt werden durch:
DBSERVERNAME yyy
Der Wert xxx kann variieren, und zwischen dbservername und dem Wert befinden sich zwei Registerkarten. Dieses Name-Wert-Paar ist eines von vielen aus einer Konfigurationsdatei.
Ich habe es mit folgendem Rückverweis versucht:
echo "DBSERVERNAME xxx" | sed -rne 's/\(dbservername\)[[:blank:]]+\([[:alpha:]]+\)/\1 yyy/gip'
und das führte zu einem Fehler: Ungültiger Verweis \ 1 auf die RHS des Befehls `s '.
Was stimmt nicht mit dem Ausdruck? Verwendung von GNU sed.