我正在尝试更改仅与部分行匹配的文件中的整行。例如,下面的命令可以正常工作,因为“$Netconf_DHCPStart”/
中没有:
sed -e '/DHCP_START=/c\DHCP_START='"$Netconf_DHCPStart"
但是,下面的命令不起作用
sed '/static ip_address='"${Current_StaticIP}"'/c\static ip_address='"$Netconf_range"'.110' /etc/dhcpcd.conf
给出错误:
sed:-e 表达式 #1,字符 32:未知命令:'2'
我知道这是因为“$Current_StaticIP”/
中包含一个,但是,我不确定如何格式化它以便它可以工作。我需要\
先转义变量内的内容吗?
答案1
您可以使用替代\c...c
形式,其中c
是预计不会出现在变量中的任何字符:
sed '\%static ip_address='"${Current_StaticIP}"'%c\static ip_address='"$Netconf_range"'.110'
(c\
除非您的第二个变量包含换行符,否则 sed 命令的部分不是问题。)