我在Vagrantfile中有下一个代码:
node.vm.network 'private_network',
ip: ip_prefix + "#{index}",
nic_type: "virtio"
if additional_ifaces
additional_ifaces.each do |iface|
node.vm.network 'private_network',
ip: iface['ip'],
nic_type: "virtio"
end
end
我想在sed的帮助下删除这段代码。 能否请你帮忙? P.S。:只要文件内容经常更改,我就不想使用一系列行号进行删除。
我试图通过使用变量并将其传递给sed来实现它,但是它引发了有关转义的错误:
$ sed -i "s/$l//g" Vagrantfile
sed: -e expression #1, char 38: unterminated `s' command
变量的内容是:
$ echo $l
node.vm.network \'private_network\', ip: ip_prefix \+ "\#\{index\}", nic_type: virtio \if additional_ifaces additional_ifaces\.each \do \|iface\| node\.vm\.network \'private_network\'\, \ip: iface\[\'ip\'\], nic_type: "virtio" end end
答案 0 :(得分:1)
我建议使用GNU sed:
sed '/^ node\.vm\.network .private_network.,$/,/^ end$/d' file
如果你想编辑你的文件"就地"使用sed的选项-i
。
答案 1 :(得分:1)
您可以使用下面的
删除模式匹配后的特定行数sed -i -e '/node.vm.network/,+10d' Vagrantfile