Ich habe online nach dieser Antwort gesucht und kann es nicht finden.Wie sed verwenden, um die Variable einer Konfigurationsdatei zu ersetzen?
Ich habe eine Konfigurationsdatei, die enthält:
VAR1=VALUE1
VAR2=VALUE2
VAR3=VALUE3
VAR4=VALUE4
VAR5=VALUE5
VAR6=VALUE6
Und ich will VAR5 Wert von Wert5 zu VALUE10 ändern. Leider kenne ich den Wert von VALUE5 nicht, so dass ich nicht danach suchen kann. Also im Grunde muss ich sed (oder was auch immer) verwenden, um den Wert von VAR5 zu jedem Wert zu ersetzen, mit dem ich es ersetzen möchte.
Bearbeiten: Dank der bestätigten Lösung konnte ich die folgenden in BASH verwenden, um meine Konfigurationsdatei zu bearbeiten, indem Sie ein Argument in das Bash-Skript übergeben. Die Schrägstriche wurden durch Kommas ersetzt, da der Parameter, den ich an das Skript übergebe, Schrägstriche enthält.
sed -i 's,^\(THISISMYVARIABLE=\).*,\1'THISISMYVALUE',' config.cfg
Meine Datei enthalten:
THISISMYVARIABLE=SOMEOLDVALUE
Nach dem sed Befehl in bash
THISISMYVARIABLE=THISISMYVALUE
Woher kommt "VALUE10"? Kommt es von einer anderen Zeile in derselben Datei? Oder ist es nur ein beliebiger Wert? – Sildoreth
VAR5 in meiner Konfigurationsdatei ist USER_INSTALL_DIR und VALUE10 ist alles, es könnte Müll sein. Ich möchte VAR5 oder in meinem Fall USER_INSTALL_DIR auf eine Variable setzen, die ich über ein Bash-Skript an es übergebe. Das Folgende funktionierte dank anubhavas Kommentar für mich. Ich habe die Schrägstriche auch durch Kommas ersetzt, da der Parameter, den mein Bash-Skript annimmt, Schrägstriche enthält, da er ein Benutzerverzeichnis durchlässt. – SomeGuyOnAComputer