【shell腳本實例】shell腳本統計單詞頻率、出現次數最多的n個單詞


1. 統計的對象words.txt,每個單詞占一行(從簡考慮了~)

zjd@ubuntu:~/test$ cat word.txt 
used
this
count
mysql
count
this
used
mysql
linux
this
redis
apple
android
redis
apple
 

 

 2. 統計每個單詞的頻率

方法1:

zjd@ubuntu:~/test$ cat word.txt |awk '{a[$0]++}END{for(i in a) print i"="a[i]}'
linux=1
used=2
apple=2
mysql=2
count=2
android=1
redis=2
this=3

方法2(與方法1沒有本質區別~~,{}大括號也可以表示循環)

zjd@ubuntu:~/test$ cat word.txt |awk '{for(i=0;i<NF;i++) a[$0]++}END{for(i in a) print i"="a[i]}'
linux=1
used=2
apple=2
mysql=2
count=2
android=1
redis=2
this=3

 

3. 統計出現頻率最多的三個單詞

方法1:

zjd@ubuntu:~/test$ cat word.txt|awk '{a[$0]++}END{for(i in a) print i" "a[i]}'|sort -k2r|head -3
this 3
apple 2
count 2

 方法2:

zjd@ubuntu:~/test$ cat word.txt|sort |uniq -c|sort -k1r|head -3
      3 this
      2 used
      2 redis

知識點:
sort 排序 -r 倒序 -k1 對第一個字段排序 
uniq 相同的單詞放在一起 -c count 合並相同的單詞,顯示次數
head -3 顯示前三行

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM