从文件中某一行删除#的最简单方法



如何使用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

最新更新