日期:2014-05-16 浏览次数:20703 次
让文本飞 linux shell脚本数据挖掘实践
参考书:Linux Shell 脚本攻略
对文件中的以下网址排序,导出出现次数排名top3的网址。
文件名:
website
http://www.google.com http://www.baidu.com http://www.sina.com http://www.bjtu.edu.cn http://www.codeproject.com http://www.csdn.com http://www.sohu.com http://www.yahoo.com http://mail.163.com http://www.bjtu.edu.cn http://www.codeproject.com http://www.csdn.com http://www.sohu.com http://www.yahoo.com http://mail.163.com http://www.codeproject.com http://www.csdn.com http://www.sohu.com http://www.yahoo.com http://mail.163.com http://www.qq.com http://www.hao123.com http://www.163.com http://youku.com http://taobao/com http://www.bjtu.edu.cn http://www.codeproject.com http://www.csdn.com http://www.sohu.com http://www.yahoo.com http://mail.163.com http://www.codeproject.com http://www.csdn.com http://www.sohu.com http://www.yahoo.com http://mail.163.com http://www.qq.com http://www.hao123.com http://www.163.com http://youku.com http://taobao/com
#!/bin/bash #文件名:websort #用途:计算文件中网址出现的次数 foo() { if [ $# -ne 1 ]; then echo "Usage:$0 filename";#$0脚本名字 exit -1 fi filename=$1#函数第一个参数 egrep -o "http://[a-zA-Z0-9.]+\.[a-zA-Z]{2,3}" $filename | \ #网站出现的次数统计,用到关联数组 awk '{ count[$0]++ }#$0代表每行,只需遍历一次 END{ printf("%-30s%s\n","wensite","count"); for(ind in count) { printf("%-30s%d\n",ind,count[ind]); } }' } #输出出现次数排名前三位的网址 foo website | sort -nrk 2 | head -n 3 >websorted2.txt;
键入websort
输出
http://www.yahoo.com 5 http://www.sohu.com 5 http://www.csdn.com 5