让文本飞 linux shell脚本数据挖掘实践,统计出出现次数top3的url。

1 篇文章 0 订阅
1 篇文章 0 订阅

让文本飞 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

shell脚本如下:

#!/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

转载请注明出处 http://write.blog.csdn.net/postlist


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值