bash实现统计文本词频率并排序

str=$(cat words.txt)
declare -A myMap
declare -A Map
for key in $str;do
        flag=0
        num=0
        for j in ${!myMap[*]};do
                if [ $j == $key ]
                then
                        flag=1
                        myMap[$key]=`expr ${myMap[$key]} + 1`
                fi
        done
        if [ $flag -eq $num ]
        then
                myMap[$key]=1
        fi
done

for key in ${!myMap[*]};do
        Map[$key]=0
done
for i in ${!myMap[*]};do
        num=0
        point=chester
        for key in ${!myMap[*]};do
                if [ ${myMap[$key]} -gt $num ]
                then
                        point=$key
                        num=`expr ${myMap[$key]}`
                fi
        done
        echo $point ${myMap[$point]}
        unset myMap[$point]
done
             
发布了4 篇原创文章 · 获赞 6 · 访问量 226

猜你喜欢

转载自blog.csdn.net/werdery/article/details/104246371