原理:
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
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
发表评论 取消回复