Linux作业-shell统计某文章中出现频率最高的N个单词并排序输出出现次数
Posted gavanwanggw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux作业-shell统计某文章中出现频率最高的N个单词并排序输出出现次数相关的知识,希望对你有一定的参考价值。
Linux课上的作业周三交,若有考虑不周到的地方,还请多多不吝赐教。
shell处理文本相关的经常使用命令见此博客
#
#假设输入两个參数 则第一个为统计单词的个数。第二个为要统计的文章
#假设输入一个參数 则默认统计单词的个数为10
#
详细思路:
将各种符号用换行替换(tr命令)
大写改小写(tr命令)
排序、统计单词个数并除去反复 (sort和uniq)
按出现次数的高低排序(sort)
打印N个须要统计的单词
#!/bin/bash if [ $# -ne 2 -a $# -ne 1 ] ;then echo "usage: `basename $0 ` [n] input file " echo exit fi if [ $# -eq 1 ];then I_TOP=10 I_FILE=$1 fi if [ $# -eq 2 ];then I_TOP=$1 I_FILE=$2 fi tr -sc "[A-Z][a-z]" "[\012*]" < $I_FILE | tr "[A-Z]" "[a-z]" | sort | uniq -c | sort -k1 -n -r | head -$I_TOP | nl
以上是关于Linux作业-shell统计某文章中出现频率最高的N个单词并排序输出出现次数的主要内容,如果未能解决你的问题,请参考以下文章
统计一篇英文文章内每个单词出现频率,并返回出现频率最高的前10个单词及其出现次数
统计一段文章的单词频率,取出频率最高的5个单词和个数(python)
linux shell脚本中如何统计某一行中某字符出现的个数
python输入一段英文文本,统计出现频率最高的前5个单词?
python: 求一个数字中出现频率最高的数。 例如:longestDigitRun(11777332) return 7