awk sed精选命令应用集_2018_lcf

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划分行,.作为插入或修改数据的标识符

补充说明:如果要同时修改很多行的网址,那先要找出共同点的标识符过滤出行和划分行,并选取共同点的插入数据的标识符

猜你喜欢

转载自blog.csdn.net/cbuy888/article/details/82378113