通過sort命令可以實現對輸入流或者文字內容進行排序,並將結果輸出。
sort [option] [file]
引數
說明-k
指定列,排序會按照此列為基準進行排序
-r倒序排序
-t指定排序的分隔符
-h可以帶單位進行比較,比如2k,3m,4g等等,不需要在轉換成一樣的單位
-u排序時如果有相同行,會進行合併,把重複行去掉
-n按照數字的大小進行排序
以上,應該是sort最常使用的幾個引數,其他的引數還有很多,如需使用,可以使用查詢幫助:
man sort 或者 sort --help
1、不加引數
sort會按照ascii碼從第乙個字元開始進行比較,第乙個字元相同再按照第二個字元、第三個字元…依次論推進行比較。
這裡有乙個sort_num檔案進行排序測試,如下:
命令:sort sort_num
結果如下:
這裡18最大卻排在了前面,由於沒加任何引數,18實際上會被當做兩個字元"1"和"8",所以按照ascii碼的順序,"1"當然比第二行同位置的"4"以及第六行同位置的"5"以及最後一行的"8"小,所以排在前面了。
2、加引數-n:按數字排序
這個引數會把文字按數字進行排序,還是1中的例子:
命令:·sort -n sort_num
這次18排在後面啦!
3、引數-r:倒序排序
這就是順序和沒加引數的sort結果反過來。正常的sort命令是按照ascii碼順序依次從小往大排,-r就是從大往小排。
命令:sort -r sort_num
4、引數-u:去除重複值:
比如這個sort_num檔案,加引數-u會把包含4的行做去重操作,只保留乙個。
5、引數-k:指定要比較的列
預設情況下,如果要比較的資料中有多個列,那麼sort比較缺省會比第一列,加-k引數,會按照指定的列進行比較:
如下,:
命令:sort -k 2
6、引數-t:指定分隔符
預設情況下,我們用-k指定列時,列與列之間預設是用空格或者tab鍵隔開的。-t可以指定分隔符為別的符號。比如passwd檔案,我們指定以冒號為分割,按第三列進行比較,如下:
7、-k引數的高階使用
-k引數可以使用多次,按照多列進行排序。
這裡有個文件,如下:
命令:sort -t . -k 4.1,4.2 -k 3,3 sort_ip
引數解釋:
-t .
以」."為分隔符進行分割
-k 4.1,4.2
:先按照第4列進行排序,從第四列的第乙個字元到第四列的第二個字元。
-k 3,3
按照第3列進行排序。
結果:
每天一點linux命令積累
檢視檔案當前目錄 pwd 在vi編輯時查詢關鍵字 在左下方輸入關鍵字再點回車跳轉到相應位置 如果你要繼續查詢此關鍵字,敲字元 n 就可以繼續查詢了。敲字元n 大寫n 就會向前查詢 安裝nodewget qo bash 之後需要啟用nvm source nvm nvm.sh 啟用完成後,安裝node ...
每天一點linux命令 join合併文字
前面說過cat命令和paste命令都可以合併文字,今天說另乙個合併文字的命令 join。命令格式 join option file1 file2 如命令所示,join命令後面必須跟兩個檔案,不能多也不能少。命令的作用 這個命令使兩個檔案按照指定的字段合併到一起,當然前提是該字段兩個檔案中都存在。不指...
每天一點python xlrd
xlrd是python語言中讀取excel的擴充套件工具,可以實現指定表單 指定單元格的讀取。1.讀取excel檔案 workbook xlrd.open workbook file.xls 2.獲取excel中表單數量 workbook.nsheets 3.獲取excel中的乙個表單 workbo...