如何使用變數更改Linux中的特殊字元

如何使用變數更改Linux中的特殊字元

我在特定文件中使用此sed命令,但它不起作用。

例如

a="adsfkndsa%/{}==admfkdsa"  
b=sadkfjdsaklfj  

sed -i -e 's/$a/$b/g' /tmp/sample.txt

請建議另一種方式。

答案1

我剛剛嘗試過,它可以在我的系統(Debian 8)上運行:

sed -i.bak "s|$a|$b|g" /tmp/sample.txt

您需要更改分隔符,因為變數$a包含/.

前:

cat /tmp/sample.txt.bak 
foo
adsfkndsa%/{}==admfkdsa
bar

後:

cat /tmp/sample.txt
foo
sadkfjdsaklfj
bar

編輯,sed版本資訊:

sed --version
sed (GNU sed) 4.2.2

相關內容