題目:
寫一個(gè) bash 腳本以統(tǒng)計(jì)一個(gè)文本文件 words.txt 中每個(gè)單詞出現(xiàn)的頻率。
為了簡(jiǎn)單起見田盈,你可以假設(shè):
words.txt只包括小寫字母和 ' ' 。每個(gè)單詞只由小寫字母組成手形。單詞間由一個(gè)或多個(gè)空格字符分隔牺蹄。
示例:
假設(shè) words.txt 內(nèi)容如下:
the day is sunny the the
the sunny is is
你的腳本應(yīng)當(dāng)輸出(以詞頻降序排列):
the 4
is 3
sunny 2
day 1
解題:
思路:
- 使用tr,將空格替換為換行符撮执;tr -s可以將多個(gè)需要替換的字符微峰,當(dāng)作一個(gè)字符進(jìn)行替換
- 使用sort,進(jìn)行排序抒钱。sort -nr可以以數(shù)字大小進(jìn)行排序
- awk打印
代碼:
cat words.txt|tr -s ' ' '\n'|sort|uniq -c|sort -nr|awk '{print $2,$1}'