我在特定文件中使用此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