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 显示前三行