知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

统计特定文件中的词频

发布时间:2014-09-05 14:17:20作者:知识屋

统计特定文件中的词频
 
查找文件中使用的单词的频率是一件很有意思的事情,下面,我们利用 关联数组,awk,sed,grep 等不同的方式来解决问题。
首先,我们需要一个测试用的文本,保存名为  word.txt
内容如下:
[python] 
Word used  
this  counting  
this  
 
接下来需要编写Shell脚本程序,如下所示:
[python] 
#!/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%s/n","Word","Count") ; /  
 for(ind in count) { printf("%-14s%d/n",ind,count[ind]); } }'   
 
工作原理介绍:
1.egrep -o "/b[[:alpha:]]+/b" $filename 用来只输出单词,用 -o 选项打印出由换行符分割的匹配字符序列,这样我们就可以在每行中列出一个单词
2./b 是单词边界标记符。[:alpha:] 是表示字母的字符类
3.awk命令用来避免对每一个单词进行迭代
 
下面给出运行的截图:
 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜