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