Eine Datei in /etc mithilfe von Shell-Skripten bearbeiten?

Eine Datei in /etc mithilfe von Shell-Skripten bearbeiten?

Wie bearbeite ich seddie Datei /etc/heat/heat.conf?

Ich möchte die neuen Zeilen unter dem Standardabschnitt hinzufügen

[DEFAULT]
rabbit_host =controller
rabbit_password =RABBIT_PASS

Antwort1

Sie können eine /regexp/Adresse verwenden, um die Zeile zu finden, die enthält [DEFAULT], und dann einen Append- aBefehl (), um darunter Zeilen hinzuzufügen. Übergeben Sie -ian sed, damit die Datei direkt geändert wird (Sie sollten es vielleicht zuerst ohne ausführen, um sicherzustellen, dass es das Richtige tut; es gibt aus, wie die geänderte Datei aussehen wird, ohne sie tatsächlich zu ändern):

# sed -i '/^\[DEFAULT\]$/a rabbit_host =controller\nrabbit_password =RABBIT_PASS' /etc/heat/heat.conf

Antwort2

wenn Sie eine Datei /tmp/amit dem Inhalt

hello my friend

Sie können sed verwenden, um Zeichenfolgen zu ersetzen:

sed -i 's/hello/hi/g' /tmp/a

Dies führt zu:

hi my friend

sehen:man sed

Sie können sedeiner Datei auch Zeilen ohne Zeilen hinzufügen, indem Sie Folgendes verwenden >>:

echo "I like you">>/tmp/a

Antwort3

Ich bin sicher, dass der Antragsteller inzwischen eine Lösung gefunden hat, aber nur für den Fall.

Diese Anfrage ist ideal für die Anwendung Crudini, da sie für alle wichtigen Linux-Versionen verfügbar ist. Im Folgenden wird beispielsweise eine Zeile zum DEFAULTAbschnitt von hinzugefügt/etc/heat/heat.conf

crudini --set /etc/heat/heat.conf DEFAULT mysetting true

Die Sektion:

[DEFAULT]
rabbit_host =controller
rabbit_password =RABBIT_PASS
mysetting = true

wird aktualisiert, wenn der Eintrag bereits in der Konfigurationsdatei ist.

Antwort4

Old-School ed-Ansatz

ed -s test <<EOF
/^\[DEFAULT\]$/
a
rabbit_host =controller
rabbit_password =RABBIT_PASS
.
w
q
EOF

verwandte Informationen