leetcode Word Frequency

题目连接地址:https://leetcode.com/problems/word-frequency/

Write a bash script to calculate the frequency of each word in a text file words.txt.

For simplicity sake, you may assume:

  • words.txt contains only lowercase characters and space ' ' characters.
  • Each word must consist of lowercase characters only.
  • Words are separated by one or more whitespace characters.

 

For example, assume that words.txt has the following content:

the day is sunny the the
the sunny is is

Your script should output the following, sorted by descending frequency:

the 4
is 3
sunny 2
day 1

Note:
Don't worry about handling ties, it is guaranteed that each word's frequency count is unique.

 

 

 代码:

# Read from the file words.txt and output the word frequency list to stdout.
tr -s "\t| " "\n" <words.txt|sort |uniq -c | sort -k1 -r|awk '{print $2,$1}'

 

解释:

tr -s "\t| " "\n" <words.txt
|sort    
|uniq -c
| sort -k1 -r
 |awk '{print $2,$1}'
 
将文件里面的tab或者空格统一替换成换行
 
排序
 
去重,并且显示
每个单词出现的数量
 
按照单词出现的数量
进行逆序排序
 
交换第一列和第二列的位置
(因为uniq出来的结果数量是在前面的)

 


posted on 2015-03-24 10:39  asif  阅读(595)  评论(0编辑  收藏  举报

导航