我试图用2个变量替换2个变量但是它给出了sed表达式-e error
sed 's/'$presentnetwork'/'$netmask\/$subnet'/g' -i /etc/snmp/snmpd.conf
如果把/并用sed代替一个变量,即使我试图只放一个变量它也不起作用
sed 's/'$presentnetwork'/'$netmask\/'/g' -i /etc/snmp/snmpd.conf
是否可以在同一个sed命令中使用转义序列和变量?
答案 0 :(得分:2)
您需要用双引号"
包装它:
sed "s/$presentnetwork/$netmask\//g" -i /etc/snmp/snmpd.conf
# ^ ^
$ cat a.html
hello
$ a=hello
$ b=good
$ c=bye
$ sed "s/$a/$b\/$c/g" -i a.html
$ cat a.html
good/bye
答案 1 :(得分:1)
sed
不仅限于/
作为分隔符,您还可以使用其他一些字符来简化转义(如果您知道该字符不能成为变量的一部分):
sed "s_$presentnetwork_$netmask/_g" -i /etc/snmp/snmpd.conf