Wie bearbeite ich sed
die 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- a
Befehl (), um darunter Zeilen hinzuzufügen. Übergeben Sie -i
an 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/a
mit 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 sed
einer 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 DEFAULT
Abschnitt 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