原理:

sed -i 's/<原字符串>/<替换字符串>/g' <文件>
grep -rl "<搜索字符串>"
find -name "*<搜索字符串>*"
rename <原字符串>  <替换字符串>  <文件>

测试的文件

cat iptables22.txt

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j DROP

-A INPUT -p tcp -m tcp --dport 443 -j DROP


sed -i "s/^[^#].*DROP$/#&/g" iptables22.txt
#: s:替换
#:  ^:开头匹配
#: [^#]:匹配非#
#: #&:中的&代表匹配整行,整个意思就是行前面加上#号
#: g:全部(只匹配特定行不加)

效果如下


cat iptables22.txt
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
#-A INPUT -p tcp -m tcp --dport 80 -j DROP
#-A INPUT -p tcp -m tcp --dport 443 -j DROP

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

需求:取消DROP前面的注释

sed -i "/^#.*DROP$/s/^#//" iptables22.txt
#:^#//:去掉代表开头的#

效果如下



cat /root/iptables22.txt
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j DROP
-A INPUT -p tcp -m tcp --dport 443 -j DROP



点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部