0

我正在尝试用 / 在 2 个变量之间替换 2 个变量,但它给出了 sed 表达式 -e 错误

 sed 's/'$presentnetwork'/'$netmask\/$subnet'/g' -i /etc/snmp/snmpd.conf

如何放置 / 并使用 sed 替换变量即使我尝试只放置一个变量它也不起作用

 sed 's/'$presentnetwork'/'$netmask\/'/g' -i /etc/snmp/snmpd.conf

是否可以在同一个 sed 命令中使用转义序列和变量?

4

2 回答 2

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
于 2013-05-27T13:10:06.940 回答
1

sed不限于/作为分隔符,您还可以使用其他一些字符来使转义更容易(如果您知道该字符不能成为变量的一部分):

 sed "s_$presentnetwork_$netmask/_g" -i /etc/snmp/snmpd.conf
于 2013-05-27T13:12:33.627 回答