Verwenden Sie den Befehl sed, um die kv-Konfigurationsdatei in Linux zu ändern

Verwenden Sie den Befehl sed, um die kv-Konfigurationsdatei in Linux zu ändern

sed ist ein Zeichenstromeditor unter Unix, also ein Streameditor. Er ist zeilenorientiert und verarbeitet in Zeileneinheiten. Gleichzeitig ist sed nicht interaktiv und verarbeitet nach der Ausführung die gesamte Datei.

Tägliche Konfigurationsdateien für Hintergrunddienste liegen meist in Form von Schlüssel-Werten vor, z. B. INI-Dateien, Toml-Dateien oder einige benutzerdefinierte Konfigurationsdateien. Wenn wir in einigen Fällen automatisierte Skripte schreiben müssen, um die Konfigurationsdateien zu ändern, können wir den sed-Befehl der Shell verwenden, um regelmäßige Übereinstimmungen und schnelle Änderungen durchzuführen, was sehr einfach und schnell ist und die mühsame Arbeit beim Schreiben in vielen „Hochsprachen“ reduziert. Im Folgenden werden hauptsächlich zwei häufige Konfigurationsänderungen und Befehlsreferenzbeispiele aufgeführt:

Konfigurationsdatei test.conf zum Testen

$ Katze test.conf 
Max. Verbindungen = 100
test.log_Pfad = "/tmp/test.log"
fsync=ein

So zitieren Sie Werte

#!/bin/bash
CONF=test.conf
setze_Schlüsselwert() {
  lokaler Schlüssel=${1}
  lokaler Wert=${2}
  wenn [ -n $Wert ]; dann
    #echo $Wert
    lokaler Strom = $ (sed -n -e "s/^\($key = '\)\([^ ']*\)\(.*\)$/\2/p" $CONF) # Wert mit einfachen Anführungszeichen, wenn [ -n $current ]; dann
      echo "Einstellung $CONF: $key = $value"
      Wert="$(echo "${value}" | sed 's|[&]|\\&|g')"
      sed -i "s|^[#]*[ ]*${Schlüssel}\([ ]*\)=.*|${Schlüssel} = '${Wert}'|" ${CONF}
    fi
  fi
}
set_key_value "max.Verbindungen" "1024"
set_key_value "test.log_pfad" "/data/logs/test.log"

Werte ohne Anführungszeichen

CONF=test.conf
setze_Schlüsselwert() {
  lokaler Schlüssel=${1}
  lokaler Wert=${2}
  wenn [ -n $Wert ]; dann
    #echo $Wert
    local current=$(sed -n -e "s/^\($key = \)\([^ ']*\)\(.*\)$/\2/p" $CONF) # Wert ohne einfache Anführungszeichenwenn [ -n $current ];dann
      echo "Einstellung $CONF: $key = $value"
      Wert="$(echo "${value}" | sed 's|[&]|\\&|g')"
      sed -i "s|^[#]*[ ]*${Schlüssel}\([ ]*\)=.*|${Schlüssel} = ${Wert}|" ${CONF}
    fi
  fi
}
set_key_value "fsync" "aus"

Zusammenfassen

Oben habe ich Ihnen erklärt, wie Sie die KV-Konfigurationsdatei mit dem Befehl sed unter Linux ändern können. Ich hoffe, es wird Ihnen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung des Linux-Befehls sed (empfohlen)
  • sed-Befehl, um die Zeile zu finden, in der sich das Schlüsselwort befindet, und das erste Zeichen davor zu löschen
  • Detaillierte Erklärung der Verwendung von Sed-Befehlen und regulären Ausdrucksmetazeichen
  • Linux-Tutorial zum Ersetzen von Zeichenfolgen mit dem Befehl sed
  • Zeigen Sie den sed-Befehl des Systemprotokolls von einem bestimmten Zeitraum bis zur Gegenwart an
  • Ein Shell-Befehl pro Tag Linux-Reihe von Textinhaltsoperationen - ausführliche Erklärung des sed-Befehls
  • Verwendung des sed-Befehls unter Linux
  • Zusammenfassung der Verwendung und Vorsichtsmaßnahmen des sed-Befehls unter Linux
  • Häufig verwendete sed-Befehle in Linux
  • So verwenden Sie den Befehl sed, um bestimmte Zeilen einer Datei effizient zu löschen

<<:  Umfassender Vergleich und Bewertung des Vue-Code-Hervorhebungs-Plugins

>>:  Tutorial zur Installation von MySQL 5.7.18 auf Mac OS 10.12

Artikel empfehlen

Methoden und Probleme bei der Installation von MariaDB in CentOS unter MySQL

Löschen Sie die zuvor installierte MariaDB 1. Ver...

Analyse der Anweisungsausführungsreihenfolge von SQL und MySQL

Ich bin heute auf ein Problem gestoßen: Kann ich ...

Vue+Router+Element zur Implementierung einer einfachen Navigationsleiste

Dieses Projekt teilt den spezifischen Code von Vu...

Tkinter verwendet JS-Canvas, um Farbverlaufsfarben zu erzielen

Inhaltsverzeichnis 1. Verwenden Sie RGB zur Darst...

Mehrere Lösungen für domänenübergreifende Gründe in der Webentwicklung

Inhaltsverzeichnis Domänenübergreifende Gründe JS...

CSS-Isolationsproblem in Blazor

1. Umwelt VS 2019 16.9.0 Vorschau 1.0 .NET SDK 5....