您的位置:首页 > 运维架构 > Shell

Linux作业(三)-shell统计某文章中出现频率最高的N个单词并排序输出出现次数

2017-04-25 21:42 926 查看
Linux课上的作业周三交,若有考虑不周到的地方,还请多多不吝赐教。

shell处理文本相关的经常使用命令见此博客

#

#假设输入两个參数 则第一个为统计单词的个数。第二个为要统计的文章

#假设输入一个參数 则默认统计单词的个数为10

#

详细思路:

将各种符号用换行替换(tr命令)

大写改小写(tr命令)

排序、统计单词个数并除去反复 (sort和uniq)

按出现次数的高低排序(sort)

打印N个须要统计的单词

#!/bin/bash
if [ $# -ne 2 -a $# -ne 1 ] ;then
echo "usage: `basename $0 `
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐