GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie verwendet man sed, um die Variable einer Konfigurationsdatei zu ersetzen?

Sie können diesen Sed ausprobieren:

sed -i.bak 's/^\(VAR5=\).*/\1VALUE10/' file

Es ergibt:

VAR1=VALUE1
VAR2=VALUE2
VAR3=VALUE3
VAR4=VALUE4
VAR5=VALUE10
VAR6=VALUE6

Obwohl die Antwort zur Frage hinzugefügt wurde. Ich habe einige Zeit damit verbracht, wie es funktioniert, ich möchte einige Fakten und meine Version der Antwort hinzufügen,

sed -i 's,^\(THISISMYVARIABLE[ ]*=\).*,\1'THISISMYVALUE',g' config.cfg

Erklärung:

  • Als Basis von sed 's/find_this/replace_with/' , sagen wir sed zum Suchen und Ersetzen. Denken Sie auch daran, dass es mehrere andere Trennzeichen gibt, die wir anstelle von / verwenden können . Hier , verwendet wird.
  • Hier finden wir die Zeile, die ^\(THISISMYVARIABLE[ ]*=\).* entspricht . Das bedeutet, dass wir die Übereinstimmung THISISMYVARIABLE[ ]*= gruppieren . ([ ]* zu überdecken, wenn nach dem Schlüssel Leerzeichen stehen)
  • Ersetzen Sie Abschnitt \1 ist ein Rückverweis. Wir verweisen auf die erste Gruppe in dem regulären Ausdruck, den wir für die Übereinstimmung verwendet haben.

Sie können sagen:

sed '/^VAR5=/s/=.*/=VALUE10/' filename

Um die Änderung an der Datei an Ort und Stelle vorzunehmen , verwenden Sie den -i Möglichkeit:

sed -i '/^VAR5=/s/=.*/=VALUE10/' filename

Linux
  1. Wie ersetze ich eine Zeichenfolge in einer oder mehreren Dateien?

  2. Wie verwendet man Sed, um eine mehrzeilige Zeichenfolge zu ersetzen?

  3. Wie ersetzt man sed wie Text durch Python?

  4. So verwenden Sie sed, um die letzten n Zeilen einer Datei zu entfernen

  5. Wie kann man Zeichen rekursiv durch sed ersetzen?

BENUTZUNG DES SED-EDITORS

Top 20 der zu verwendenden sed-Befehle

So verwenden Sie den Befehl lsof unter Linux

Wie verwende ich gzip unter Linux?

So verwenden Sie den Linux-Befehl shred

So verwenden Sie Sed zum Suchen und Ersetzen einer Zeichenfolge in einer Datei