统计文本中单词使用频率

#!/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
# 删除临时文件


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值