黑帽联盟

标题: sed在匹配行前面添加注释# ,或者取消注释# [打印本页]

作者: 定位    时间: 2023-10-20 23:02
标题: sed在匹配行前面添加注释# ,或者取消注释#
测试文件:
  1. cat iptables22.txt
  2. -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
  3. -A INPUT -p tcp -m tcp --dport 80 -j DROP
  4. -A INPUT -p tcp -m tcp --dport 443 -j DROP
复制代码
一、在文件的匹配行前面加上#注释:
需求:给DROP前面全部加上注释
  1. sed -i "s/^[^#].*DROP$/#&/g" iptables22.txt
  2. #: s:替换
  3. #:  ^:开头匹配
  4. #: [^#]:匹配非#
  5. #: #&:中的&代表匹配整行,整个意思就是行前面加上#号
  6. #: g:全部(只匹配特定行不加)
复制代码
效果如下:
  1. cat iptables22.txt
  2. -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
  3. #-A INPUT -p tcp -m tcp --dport 80 -j DROP
  4. #-A INPUT -p tcp -m tcp --dport 443 -j DROP
复制代码

二、在文件的匹配行前面取消#注释:
PS:不是删除注释句

需求:取消DROP前面的注释

  1. sed -i "/^#.*DROP$/s/^#//" iptables22.txt
  2. #:^#//:去掉代表开头的#
复制代码
效果如下:
  1. cat /root/iptables22.txt
  2. -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
  3. -A INPUT -p tcp -m tcp --dport 80 -j DROP
  4. -A INPUT -p tcp -m tcp --dport 443 -j DROP
复制代码





欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5