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 脚本。该脚本能够统计文件中单词的出现频率,并按频率从高到低排序输出指定数量的单词。处理流程包括使用 tr 命令转换字符、大小写统一、排序、统计重复项以及最终的排序和输出。
1519

被折叠的 条评论
为什么被折叠?



