Linux之11——常用統計命令之sort
阿新 • • 發佈:2021-07-18
sort是在Linux裡非常常用的一個統計命令
1 sort的工作原理
sort將檔案的每一行作為一個單位,相互比較,比較原則是從首字元向後,依次按ASCII碼值進行比較,最後將他們按升序輸出。
其語法及常用引數格式:
sort [-bcfMnrtk][原始檔][-o 輸出檔案]
補充說明:sort可針對文字檔案的內容,以行為單位來排序。
參 數:
-b 忽略每行前面開始出的空格字元。
-c 檢查檔案是否已經按照順序排序。
-f 排序時,忽略大小寫字母。
-M 將前面
3
個字母依照月份的縮寫進行排序。
-n 依照數值的大小排序。
-h 使用易讀性數字(例如:2K、1G)排序
-o <輸出檔案> 將排序後的結果存入指定的檔案。
-r 以相反的順序來排序。
-t <分隔字元> 指定排序時所用的欄位分隔字元。
-k 選擇以哪個區間進行排序。
-v 按照版本排序
-u 排序後刪除重複行,等價於sort test1 | uniq
sort -h
$ cat sort_h 60MB 10 1000KB 20MB 300KB 5 A 40GB 50KB $ cat sort_h|sort -h A 5 10 50KB 300KB 1000KB 20MB 60MB 40GBView Code
sort -n
$ cat sort_n 01 00 0 70 78 67 23 30 09 44002 32010 32102 5743 3306 $ sort -n sort_nView Code0 00 01 09 23 30 67 70 78 3306 5743 32010 32102 44002
sort -t . -k 2 sort_t
$ cat sort_t 1.2.3.4 2.1.2.3 3.3.4.2 8.7.6.4 6.4.9.7View Code1SP2SP3SP4
2SP1SP2SP3
3SP3SP4SP2
8SP7SP6SP4
6SP4SP9SP7
$ sort -t . -k 2 sort_t1SP2SP3SP4
2SP1SP2SP3
3SP3SP4SP2
6SP4SP9SP7
8SP7SP6SP4
2.1.2.3
1.2.3.4
3.3.4.2
6.4.9.7
8.7.6.4
一個例子:
$ last|grep -P '(\d{1,3}\.){3}\d{1,3}'|awk '{S[$3]++} END{for(a in S) {print a,S[a]}}'|sort -k 2 -rn 113.128.81.23 43 113.118.184.151 22 120.244.191.5 21 112.10.50.241 20 120.244.232.56 17 124.74.76.126 16 58.101.55.255 15 115.236.175.131 15 113.65.210.234 15 223.71.133.42 14 119.253.43.100 14 111.199.189.52 14 101.132.159.87 14 221.219.101.182 13 183.6.105.176 13 115.199.241.187 12 113.87.130.220 11 111.23.244.189 11 220.249.15.134 10 119.131.106.244 10 118.242.17.132 10 61.149.222.113 9 111.163.143.202 9 103.27.26.3 9 59.41.64.86 8 49.66.146.59 8