加入收藏 | 设为首页 | 会员中心 | 我要投稿 佛山站长网 (https://www.0757zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

统计特定文件中的词频 - Unix系统

发布时间:2013-12-11 09:38:36 所属栏目:Unix 来源:站长网
导读:查找文件中使用的单词的频率是一件很有意思的事情,下面,我们利用 关联数组,awk,sed,grep 等不 同的方式来解决问题。 首先,我们需要一个测试用的文本,保
查找文件中使用的单词的频率是一件很有意思的事情,下面,我们利用 关联数组,awk,sed,grep 等不 同的方式来解决问题。

首先,我们需要一个测试用的文本,保存名为  word.txt

内容如 下:

Word used  
this  counting  
this

接下来需要编写Shell脚本程序,如下所示:

#!/bin/bash  
#Name: word_freq.sh  
#Description: Find out frequency of words in a file  
      
if [ $# -ne 1 ];  
then  
    echo "Usage: $0 filename";  
    exit -1
fi  
      
filename=$1
      
egrep -o "b[[:alpha:]]+b" $filename | 
      
awk '{ count[$0]++ } END{ printf("%-14s%sn","Word","Count") ;  
 for(ind in count) { printf("%-14s%dn",ind,count[ind]); } }'

工作原理介绍:

1.egrep -o "b[[:alpha:]]+b" $filename 用来只输出单词,用 -o 选项打印出由换行符分割的匹配字符序列,这样我们就可以在每行中列出一个单词

2.b 是单词边界标记符。[:alpha:] 是表示字母的字符类

3.awk命令用来避免对每一个单词进行迭代

下面给出运行的截图:

关于awk命令请 参考博主的其他博客。

(编辑:佛山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读