1.网址过滤并替换其中字符
原句:$config['base_url'] = 'http://wechat.fitcome.com/';
// 要替换成(在网址后面第一个点前面加上18数字)(\杠正规表示分切容\1表示分切的编号):
修改后:$config['base_url'] = 'http://wechat18.fitcome.com/';
sed "/= 'http:/s/\(.*\)\(\..*\)\(\..*\)/\118\2\3/" /tmp/pwd
2.批量修改配置文件
A - 批量过滤并查看相关信息
find /data -type f -name "config.php" -exec sed -n "/= 'http:/p" {} \;
B - 批量过滤并修改相关信息
find /data -type f -name "config.php" -exec sed -i "/= 'http:/s/\(.*\)\(\..*\)\(\..*\)/\118\2\3/" {} \;
---------
find /data -type f -name "*hosts*" -exec sed -n "/=> \"http:/p" {} \;
find /data -type f -name "*hosts*" -exec sed -i "/=> \"http:/s/\(.*\)\(\..*\)\(\..*\)/\118\2\3/" {} \;
---------
find /data/www -type f -name "*database*" -exec sed -n "/'hostname' =>/p" {} \;
3.查看登陆失败主机IP和nginx访问ip统计
acces日志统计IP
awk -r '/ ([0-9]+\.)+/{print}' /var/log/secure | awk '/Failed password for root from/{ip[$11]++} END{for(i in ip) {print i,ip[i]}}' | sort -nr
httpd日志统计ip
awk '{ip[$1]++} END{for(i in ip) {print i,ip[i]}}' /var/log/httpd/access_log | sort -nr
4.sed替换行中指定标识位置的字符
示例一
原行文:root:x:0:0:root:/root:/bin/bash
目标:在第二个root后添加数字18
替换后:root:x:0:0:root18:/root:/bin/bash
方法:sed "/root/s/\(.*root.*\):\(.*root.*\)/\118:\2/" eeee
说明 :通过root过滤行,标识符为root和:号,通过root划分行,:作为插入或修改数据的标识符
示例二
原行文:dataurl.php= http://www.ald8.cn help.com
目标:在第二个ald8后添加数字18
替换后:dataurl.php= http://www.ald818.cn help.com
方法:sed "/http:/s/\(.*\/\/.*\).\(cn.*\)/\118.\2/" eeee
说明 :通过http:过滤行,标识符为//和cn和.号,通过//和cn划分行,.作为插入或修改数据的标识符
补充说明:如果要同时修改很多行的网址,那先要找出共同点的标识符过滤出行和划分行,并选取共同点的插入数据的标识符