grep+awk实现

#!/bin/bash
grep "3306" | 
awk 'BEGIN{
	# 记录所有状态数
    count = 0;
	# 记录不同IP数
    count_ip = 0;
}{
    count++;
    # 记录状态
    res1[$6]++;
    if(match($5,/^(.*?):/)){
		# RSTART与RLENGTH是match执行成功后自动赋值的变量
		# 分别为匹配成功的起始索引和长度
        match_str = substr($5,RSTART,RLENGTH-1);
        if(res2[match_str]==0){
            # 说明当前IP已经出现过
            res2[match_str]=1;
            count_ip++;
        }
    }
}END{
    print "TOTAL_IP" " " count_ip;
    for(k in res1){
        print k " " res1[k];
    }
    print "TOTAL_LINK" " " count;
}'

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务