首页 > 代码库 > shell awk实战

shell awk实战

一、文本处理

1、按行提取关键字频次(如取第5列)

awk ‘BEGIN{FS="|"} {a[$5]+=1;} END {for(i in a) print i ":" a[i];}‘ OPT.ForumLogicNewServer_action_20161107.log | sort -nrk 2 -t ‘:‘

技术分享

2、日志用户每分钟访问量统计

这里我们统计日志中“getThreadList”接口的流量每分钟到达率。

 awk ‘BEGIN{FS="|"} $5=="getThreadList" {a[substr($1,0,16)]+=1;} END{for(i in a) print i "\t" a[i]}‘ OPT.ForumLogicNewServer_action_20161107.log | sort > getThreadList.txt  

技术分享

3、找一个目录下所有的二进制文件

ls -lrt | awk ‘{print $9}‘ | xargs file | grep ELF | awk ‘{print $1}‘ | tr -d ‘:‘ 

技术分享

4、 grep ‘2016-11-21 22:05‘ MTT.IDCenterServer_IDCenterServer_20161121.log | grep ‘UserInfo‘ | awk ‘BEGIN{FS="|"} {print $6}‘ | uniq | wc -l

shell awk实战