您的位置:首页 > 其它

统计文本中单词使用频率

2012-03-02 15:32 316 查看
#!/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
# 删除临时文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: