LeetCode in Kotlin

192. Word Frequency

Medium

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

For simplicity sake, you may assume:

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:

Solution

# Read from the file words.txt and output the word frequency list to stdout.
echo -e "$(cat words.txt)" | awk '{for(i=1;i<=NF;i++){if(arr[$i]==0){arr[$i]=1}else{arr[$i]=arr[$i]+1}}}END{for(i in arr) print i, arr[i]}' | sort -k2 -n -r