Diese Frage von einem anderen Benutzer wurde fälschlicherweise als doppelt markiert, so dass ich es erneut poste, das Problem hervorhebend.Escape neue Zeilen von Katze in sed Ausdruck
Ich versuche in einer meiner XML-Dateien einen privaten Schlüssel zu setzen, der aus Sicherheitsgründen in einem externen Repository gespeichert wird. Das ist mein Bash-Skript
sed -i -e "s/privateKey/`cat privatekey`/g" text.txt
Wo privateKey meinen Schlüssel aus einem Repository und text.txt heruntergeladen wird, enthält
<test>
privateKey
</test>
Nachdem das Skript ausführen ich dieses erwartete:
<test>
-----BEGIN RSA PRIVATE KEY-----
privatekeyblablablablafoooo
-----END-----------
</test>
Aber wegen der Inhalte des privaten Schlüssels sed bekommt mir dieser Fehler
sed: 1: "s/privateKey/-----BEGIN ...": unescaped newline inside substitute pattern
Eine Idee, wie kann ich die neuen Zeilen Zeichen entkommen, die aus dem Cat-Befehl kommen?
Haben Sie darüber nachgedacht, ein anderes Werkzeug als 'sed' zu verwenden? –
...Übrigens, wenn Sie denken, dass eine Frage erneut geöffnet werden soll, können Sie sie einfach bearbeiten - damit wird sie in die Warteschlange gestellt, damit sie wieder geöffnet werden kann. Auf diese Weise erhalten wir keine Wissensbasis mit verschiedenen Varianten derselben Dinge, die ursprüngliche Person wird benachrichtigt, wenn es eine Antwort gibt (und Kredit/Repo für ihre Frage), & c. –