查找文件中使用的单词的频率是一件很有意思的事情,下面,我们利用 关联数组,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%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命令用来避免对每一个单词进行迭代
下面给出运行的截图:
关于awk命令请 参考博主的其他博客。
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索词频统计
, awk
, count
, 单词
, filename
, alpha
, 词频
, 一个
c语言词频统计
词频统计、中文词频统计、词频统计工具、词频统计软件、python 统计词频,以便于您获取更多的相关知识。