首页 > 代码库 > Linux作业(三)-shell统计某文章中出现频率最高的N个单词并排序输出出现次数
Linux作业(三)-shell统计某文章中出现频率最高的N个单词并排序输出出现次数
Linux课上的作业周三交,若有考虑不周到的地方,还请多多指教。
shell处理文本相关的常用命令见此博客
#
#如果输入两个参数 则第一个为统计单词的个数,第二个为要统计的文章
#如果输入一个参数 则默认统计单词的个数为10
#
具体思路:
将各种符号用换行替换(tr命令)
大写改小写(tr命令)
排序、统计单词个数并除去重复 (sort和uniq)
按出现次数的高低排序(sort)
打印N个需要统计的单词
#!/bin/bashif [ $# -ne 2 -a $# -ne 1 ] ;then echo "usage: `basename $0 ` [n] input file " echo exitfiif [ $# -eq 1 ];then I_TOP=10 I_FILE=$1fiif [ $# -eq 2 ];then I_TOP=$1 I_FILE=$2fitr -sc "[A-Z][a-z]" "[\012*]" < $I_FILE | tr "[A-Z]" "[a-z]" | sort | uniq -c | sort -k1 -n -r | head -$I_TOP | nl
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。