【发布时间】:2022-01-20 20:03:14
【问题描述】:
我有一个包含以下数据的文件。
192.168.1.1
255.255.255.0
192.168.1.10
192.168.1.2
255.255.255.0
192.168.1.10
#192.168.2.1
#255.255.255.0
#192.168.2.10
#192.168.2.2
#255.255.255.0
#192.168.2.10
现在我想实现以下目标
- 从已经有它的行的开头删除#。
- 将# 放在没有它的行的开头。
最终文件的样子
#192.168.1.1
#255.255.255.0
#192.168.1.10
#192.168.1.2
#255.255.255.0
#192.168.1.10
192.168.2.1
255.255.255.0
192.168.2.10
192.168.2.2
255.255.255.0
192.168.2.10
我试图通过 sed 在我的脚本中使用以下命令来实现这一点,但它不起作用。
用于评论
sed -i -e "/192.168.1./{N;N;p;}/s/^#*/#/"
删除评论
sed -i -e "/192.168.2./{N;N;p;}/s/^#*//"
但是 sed 在下面抛出错误。
sed: -e expression #1, char 21: extra characters after command
任何建议。
【问题讨论】: