用 bash 脚本统计词频

来源:互联网 发布:js设置全局变量 编辑:程序博客网 时间:2024/05/17 04:19
上周有朋友问一问题,他有一个包含若干行IP地址的文本文件,每个IP占一行,需要统计每个IP在文件中出现的次数,并且按照出现次数逆序排列。


开始的时候使用了一个 awk 脚本来解决这个问题:

#!/bin/awk -f
# filename: count_ip.awk

BEGIN {
}
{
        ip_map[$0]+=1
}
END {
        for (ip in ip_map) {
                print ip_map[ip] "/t" ip
        }
}

再执行

$: cat ip_file | awk -f count_ip.awk | sort -nr



后来发现其实没必要这么麻烦,利用管道组合三条命令也可以完成这个工作:

$: sort ip_file | uniq -c | sort -rn
原创粉丝点击