So ändern Sie Sonderzeichen in Linux mithilfe von Variablen

So ändern Sie Sonderzeichen in Linux mithilfe von Variablen

Ich verwende diesen sedBefehl 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 $aein 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

verwandte Informationen