Shell:sort工具
阿新 • • 發佈:2021-07-09
簡介
sort命令是在Linux裡非常有用,它將檔案進行排序,並將排序結果標準輸出或重定向輸出到指定檔案。
語法
sort (options) 引數
選項 | 說明 |
---|---|
-n | number,依照數值的大小排序 |
-r | reverse, 以相反的順序來排序 |
-t 分隔字元 | 設定排序時所用的分隔字元, 預設空格是分隔符 |
-k | 指定需要排序的列 |
-d | 排序時,處理英文字母、數字及空格字元外,忽略其他的字元。 |
-f | 排序時,將小寫字母視為大寫字母 |
-b | 忽略每行前面開始出的空格字元 |
-o 輸出檔案 | 將排序後的結果存入指定的檔案 |
-u | 意味著是唯一的(unique),輸出的結果是去完重了的 |
-m | 將幾個排序好的檔案進行合併 |
引數:指定待排序的檔案列表
案例
準備一個檔案
vi sort.txt
張三 99
李四 100
王五 88
二哈 90
趙六 78
java 60
按照“ ”空格分割後的第2列數字升序排序。
sort -t " " -k2n,2 sort.txt
按照“ ”空格分割後的第2列數字降序排序。
sort -t " " -k2nr,2 sort.txt
將降序結果儲存到檔案
sort -t " " -k2nr,2 -o sort2.txt sort.txt
先按照“ ”空格分割後的, 然後,按照第2列數字升序排序, 最後對所有列去重
sort -t " " -k2n,2 -uk1,2 sort.txt
多列排序
準備資料:
vi sort3.txt
公司A,部門A,3
公司A,部門B,0
公司A,部門C,10
公司A,部門D,9
公司B,部門A,30
公司B,部門B,40
公司B,部門C,43
公司B,部門D,1
公司C,部門A,30
公司C,部門B,9
公司C,部門C,100
公司C,部門D,80
公司C,部門E,60
要求: 以","分割先對第一列字串升序, 再對第3列數字降序
sort -t "," -k1,1 -k3nr,3 sort3.txt
總結
能夠使用sort對字串升序或降序排序
字串升序:
sort -kstart,end 檔案
字串降序:
sort -kstartr,end 檔案
能夠使用sort 對數字升序或降序
數字升序:
sort -kstartn,end 檔案
數字降序:
sort -kstartnr,end 檔案
能夠使用sort 對多列進行排序
sort -kstart[nr],end -kstart[nr],end ... 檔案