ich folgendes gelesen haben:Linux Mit Variable ersetzen Doppel Containing Zitate
- How Do I Use Variables In A Sed Command
- How can I use variables when doing a sed?
- Sed replace variable in double quotes
Ich habe gelernt, dass ich sed "s/STRING/$var1/g"
können eine Zeichenfolge mit ersetzen der Inhalt einer Variablen Es fällt mir jedoch schwer, herauszufinden, wie man mit einer Variablen ersetzt, die doppelte Anführungszeichen, Klammern und Ausrufezeichen enthält.
Dann, in der Hoffnung, die Zitate zu entkommen, versuchte ich mein Ergebnis obwohl sed 's/\"/\\\"/g'
, die mir einen anderen Fehler sed: -e expression #1, char 7: unknown command: E'
gab. Ich hatte gehofft, den problematischen Charakteren zu entkommen und dann den variablen Ersatz zu machen: sed "s/STRING/$var1/g"
. Aber ich konnte auch nicht so weit kommen.
Ich dachte, Sie könnten eine bessere Möglichkeit kennen, eine Zeichenfolge durch eine Variable zu ersetzen, die Anführungszeichen enthält.
File1.txt:
Example test here
<tag>"Hello! [world]" This line sucks!</tag>
End example file
Variable:
var1=$(cat file1.txt)
Beispiel:
echo "STRING" | sed "s/STRING/$var1/g"
gewünschte Ausgangs:
Example test here
<tag>"Hello! [world]" This line sucks!</tag>
End example file
'sed' ist das nicht das richtige Werkzeug für diese Substitution. – anubhava
@anubhava Ich sehe. Danke für den Rat Anubhava. Ich bin offen für alles, was funktioniert. Werde versuchen, mehr Forschung zu machen. Bearbeiten Sie die Frage, um das zu berücksichtigen. – DomainsFeatured
@batMan ja, das ist die Idee. Um die Daten in der Variablen gleich zu halten. Ich möchte "STRING" durch den Inhalt von "$ var1" ersetzen. Da stecke ich fest. Dies ist nur ein minimalistisches Beispiel. – DomainsFeatured