sort 命令是根據不同的資料型別以行為單位對資料進行排序。
簡介
sort 命令是根據不同的資料型別以行為單位對資料進行排序。
sort 的預設比較規則是從首字元向後,按照 ASCII 碼值進行比較,將結果按照升序輸出。
用法
sort 命令的基本格式如下:
1
sort [-bcfMnrtk] [source-file] [-o output-file]
sort 命令可使用的引數有:
1
2
3
4
5
6
7
8
9
10
11
-b 忽略每行前面的所有空格字元,從第一個可見字元開始比較。
-c 檢查檔案是否已經排好序,如果亂序則輸出第一個亂序行的相關資訊,最後返回 1
-C 檢查檔案是否已經排好序,如果亂序,則不輸出內容,僅返回 1
-f 排序時忽略大小寫字母。
-M 將前面 3 個字母依照月份的縮寫進行排序,比如 JAN 小於 FEB 。
-n 依照數值的大小排序。
-o 將排序後的結果存入指定的檔案
-r 降序輸出
-t <分隔字元> 指定排序時所用的欄位分隔字元
-u 在輸出行中去除重複行
-k 選擇以哪個區間進行排序。
下面將會對這些引數進行介紹,其中簡單的引數就不再贅述了。
引數
-o 選項
sort是把排序後結果輸出到標準輸出,所以需要使用重定向將結果寫入指定的檔案,比如sort file > newfile 。
但是重定向的方式在遇到這種需求就無能為力了——把結果輸出到原檔案中。
如果還是使用重定向的方式,則會把原檔案給清空。
而使用-o 引數則可以完美解決這個問題:
1
sort -r test.dat -o test.dat
-t 與-k 選項
對於某些有固定格式的檔案,比如:
a 12
b 32
c 3
如果想以第二列數值大小降序輸出,則需要使用-t 和-k 引數了。其中-k 指定分隔符,-k 指定待排序的列。
1
sort -nr -tt -k2 test.bat -o test.bat