
Ich verwende diesen sed
Befehl in einer bestimmten Datei, aber er funktioniert nicht.
z.B
a="adsfkndsa%/{}==admfkdsa"
b=sadkfjdsaklfj
sed -i -e 's/$a/$b/g' /tmp/sample.txt
Bitte schlagen Sie eine andere Möglichkeit vor.
Antwort1
Ich habe dies gerade ausprobiert und es funktioniert auf meinem System (Debian 8):
sed -i.bak "s|$a|$b|g" /tmp/sample.txt
Sie müssen das Trennzeichen ändern, da die Variable $a
ein enthält /
.
Vor:
cat /tmp/sample.txt.bak
foo
adsfkndsa%/{}==admfkdsa
bar
Nach:
cat /tmp/sample.txt
foo
sadkfjdsaklfj
bar
Bearbeiten, Sed-Versionsinfo:
sed --version
sed (GNU sed) 4.2.2