Chinaunix

标题: sed增加注释和去掉注释问题 [打印本页]

作者: 674949301    时间: 2016-01-02 13:45
标题: sed增加注释和去掉注释问题
[ 本帖最后由 674949301 于 2016-01-02 17:25 编辑 ]

请问各位大侠如何写sed来去掉和增加注释这条防火墙命令其中的一条防火墙命令。希望完整匹配的来,缺省可能不严谨!)


#                  iptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to-destination $lan_ipaddr:53
作者: baby_神    时间: 2016-01-02 16:51
sed -i '/iptables/s/^#//'
sed -i '/iptables/s/^/#/'
作者: 674949301    时间: 2016-01-02 17:22
这个我懂,是想如何来完整匹配并添加是删除注释,因为这命令中有变量,不知道如何完整匹配回复 2# baby_神


   
作者: 674949301    时间: 2016-01-02 21:34
顶一顶!没人!!!
作者: 陈卓文    时间: 2016-01-02 23:36
sed -i 's/\(iptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to-destination $lan_ipaddr:53\)/#\1/' FILE
sed -i 's/#\(iptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to-destination $lan_ipaddr:53\)/\1/' FILE

作者: 674949301    时间: 2016-01-02 23:56
非常感谢!但前面有[tab]回复 5# 陈卓文


   
作者: 674949301    时间: 2016-01-02 23:57
#                  iptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to-destination $lan_ipaddr:53
                  iptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to-destination $lan_ipaddr:53
注释后面有TAB的!
回复 5# 陈卓文


   
作者: 陈卓文    时间: 2016-01-03 14:33
sed  -i 's/\(\tiptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to-destination $lan_ipaddr:53\)/#\1/'
sed  -i 's/#\(\tiptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to-destination $lan_ipaddr:53\)/\1/'
回复 7# 674949301


   
作者: 674949301    时间: 2016-01-03 17:17

非常感谢你的回答!但是执行多次会导致重复添加,还有因为注释后面TAB的数量不是固定的,这样处理不太好吧?
回复 8# 陈卓文


   
作者: 674949301    时间: 2016-01-03 17:17
继续顶顶!
作者: 陈卓文    时间: 2016-01-04 00:46
sed  -i 's/\(^\tiptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to-destination $lan_ipaddr:53\)/#\1/'
这样?
回复 9# 674949301


   
作者: 674949301    时间: 2016-01-04 13:31
本帖最后由 674949301 于 2016-01-04 13:38 编辑

还是不行!
回复 11# 陈卓文


   
作者: 674949301    时间: 2016-01-04 13:46
查了一下sed的用法,这样举行了!多谢你的指导啦!
sed -e 's/\(^[ \t]\+iptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to-destination $lan_ipaddr:53\)/#\1/'
回复 11# 陈卓文


   
作者: ops2016    时间: 2016-01-05 10:00
如果规则是一样的,你就本地修改好一份,然后复制出去
作者: jason680    时间: 2016-01-05 10:19
http://bbs.chinaunix.net/thread-4118053-1-1.html
作者: 674949301    时间: 2016-01-05 16:45
受教了!回复 15# jason680


   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2