Linux三劍客awk命令補充篇:簡單案例分析
關于awk的原理等基本知識請參考上五篇:
Linux三劍客awk命令篇一之原理及基本命令
Linux三劍客awk命令篇二之命令操作符
Linux三劍客awk命令篇三之内部變量
Linux三劍客awk命令篇四之流程控制語句
Linux三劍客awk命令篇五之引用shell變量
Linux三劍客awk命令篇五之引用shell變量的幾種方式
案例1:
操作文件,按文件内單詞出現頻率降序排序并輸出每個單詞的數量。
輸入,文件内單詞以空格分隔。
輸出,單詞數量 單詞
方法不限。
既然是awk補充篇,我們先用awk來實現。
(1)思路:
讓所有單詞排成一列,使每個單詞成為單獨的一行。
再利用sort排序和uniq計數簡單處理。
(2) 解答:
步驟1:
模拟數據
步驟2:
利用awk處理數據
即讓所有單詞排成一列,使每個單詞成為單獨的一行。
awk 'BEGIN{RS="[ ] "}{print $0}' word.txt
補充:
RS(record separator):輸入輸出數據記錄分隔符
表示每個記錄輸入的時候的分隔符,既行與行之間分隔符。
RS="[ ] ":即表示以一個或者多個空格
步驟3:
将輸出結果交給sort排序
awk 'BEGIN{RS="[ ] "}{print $0}' word.txt | sort
步驟4:
使用uniq進行計數
awk 'BEGIN{RS="[ ] "}{print $0}' word.txt | sort | uniq -c
步驟5:
再對uniq後的結果進行排序,以單詞出現頻率降序
awk 'BEGIN{RS="[ ] "}{print $0}' word.txt | sort | uniq -c| sort
這裡解決這個問題的方法不止一種,可能還會有更加簡單直接的方法。
歡迎大家給予寶貴的意見或者建議。
歡迎大家補充或者共享一些其他的方法。
感謝支持。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!