sort練習
1. 用man sort 查看sort的幫助文檔**
2.sort常用選項
短參數 | 長參數 | 說明 |
---|---|---|
-n | – number-sort | 按字符串數值排序,與-g區別為不轉為浮點數 |
-g | –general-number-sort | 按通用數值排序,支持科學計數法 |
-f | –ignore-case | 忽略大小寫,默認大小寫字母不同 |
-k | –key=POS1[,POS2] | 排序從POS1開始,若指定POS2,則POS2結束,否則以pos1排序 |
-t | –field-separator=SEP | 指定列的分割符 |
-r | –reverse | 降序排序,默認為升序 |
-h | –human-numeric-sort | 使用易讀性數字(例如: 2K 1G) |
-u | –unique | 去除重復的行 |
-o | –output=FILE | 將輸出寫入文件 |
- 常用用法舉例
1.默認排序
2.數字排序
使用-n對數字進行排序
3.指定列排序
sort排序的時候,可以按字段分割的數據進行排序。-t參數表示行的分割字符,-k表示第幾列
下列是使用"/"進行分割,不同列情況下的排序
4.對文件內容進行去重
如果文件內容有很多重復的,需要進行去重,可以通過使用-u參數
5.降序排序
-r 以相反的順序來排序
- 同時發現參數字母好像可以進行合並,經過實驗sort -n -r num.txt與sort -nr num.txt結果相同
6.將sort輸出內容寫入文件
想把sort的排序內容寫回文件,可以使用-o
7.檢查文件內容是否已排好序
-c會檢查文件是否已排好序,如果亂序,則輸出第一個亂序的行的相關信息,最后返回1
-C會檢查文件是否已排好序,如果亂序,不輸出內容,僅返回1
- 同時發現參數字母好像可以進行合並,經過實驗sort -n -r num.txt與sort -nr num.txt結果相同
3. 如果讓你編寫sort,你怎么實現?寫出偽代碼和相關的函數或系統調用
代碼思路:
1.嘗試尋找可以使用的系統調用或C庫函數
但是並沒有老師上課所說的2組與3組,不知道為什么,只能進行想法構想
- 使用open系統調用需要打開的文件
- 使用read系統調用讀取文件內容
- 使用qsort函數進行排序
- 如果有需要新文件使用creat創建一個新的文件放置新的文本
- 使用write將排序好的內容進行輸出
參考網頁:https://blog.csdn.net/qq_16836151/article/details/51527160