如何使用bash 中的脚本删除此行
#net.ipv4.ip_forward = 1
正如我从问题标题中了解到的,您需要取消注释网络设置,然后替换操作将是,使用备份:
sed -E -i.bak 's/^#(net.ipv4.ip_forward = 1)/1/g' your-filename
标志-E用于在不屏蔽括号的情况下启用反向参考功能,感谢David C.Rankin在下面的评论中的澄清。
此外,这些点可能会被屏蔽,但在本例中没有必要——假设它被应用于/etc/sysctl.conf,并且不使用标志-E和模式g时,它将是:
$ sudo sed -i.bak 's/^#(net.ipv4.ip_forward = 1)/1/' /etc/sysctl.conf
cat file | grep -v "^#net.ipv4.ip_forward = 1" > file2
sed -i '/^#net.ipv4.ip_forward = 1/d' file