统计文本中单词使用频率

#!/bin/bash #统计单词的频率 if [ $# -lt 1 ]; then echo "usage : $0 filename" fi filename=$1 cp $filename $1_backup if [ ! -f $filename ]; then echo "$filename is not a file" fi temp=$1_temp cat $filename | tr '[:punct:]' ' '\ | tr ' ' '\n' | tr 'A-Z' 'a-z' > $temp # 先把文本的中的标点全部替代成空格,然后把每个单词单独一行,全都转化成小写,方便后面的处理,输出到filename_temp文件中 sed -i -E -e '/^$/d' -e '/^[0-9]+/d' $temp # 把filename_temp文件中的空行和字母开头的行删除,用-i写入文件 sort $temp | uniq -c | sort -rn > $1_result.txt #先将sort按照字母排序,uniq对于连续的相同的行只输出一次,sort -r 逆序排序,默认是从小到大,输出结果到result.txt中 rm $temp # 删除临时文件

标签:Linux, Shell

评论已关闭