Linux命令之sort指令


Linux命令之sort指令

1. 用man sort 查看sort的幫助文檔
2. sort常用選項有哪些,都有什么功能?提交相關使用的截圖
3. 如果讓你編寫sort,你怎么實現?寫出偽代碼和相關的函數或系統調用

1.使用指令后,查閱結果如下:

2.通過幫助文檔,可以獲取一些sort命令的選項,例如:

參考網站:https://www.runoob.com/linux/linux-comm-sort.html

-b   忽略每行前面開始出的空格字符。

-c   檢查文件是否已經按照順序排序。

-d   排序時,處理英文字母、數字及空格字符外,忽略其他的字符。

-f   排序時,將小寫字母視為大寫字母。

-i   排序時,除了040至176之間的ASCII字符外,忽略其他的字符。

-m   將幾個排序好的文件進行合並。

-M   將前面3個字母依照月份的縮寫進行排序。

-n   依照數值的大小排序。

-u   意味着是唯一的(unique),輸出的結果是去完重了的。

-o<輸出文件>   將排序后的結果存入指定的文件。

-r   以相反的順序來排序。

-t<分隔字符>   指定排序時所用的欄位分隔字符。

+<起始欄位>-<結束欄位>   以指定的欄位來排序,范圍由起始欄位到結束欄位的前一欄位。

--help   顯示幫助。

--version   顯示版本信息。

在這里,我選取其中一些較為常用的選項進行實踐

首先先創建兩個文本文件供排序使用

/**********st1**********/
20191301  zhangsan   95  A
20191308  zhaosi     99  A
20191322  wangwu     62  B
20191329  zhaoliu    85  A
20191319  jiayi      74  E
20191212  bingding   55  F
20191315  wuxu       95  D
/**********st2**********/

20191329  zhaoliu    85  A
20191320  pipa       85  A
20191213  wuji       58  B
20191316  shenyou    85  E

經過單一的sort命令后,自動對第一列進行排列,得到如下結果

下面對其它選項進行實踐驗證

(1)

 sort  st1 -o st3  //將st1文件排序后輸出到st3中

(2)

sort -c //檢驗是否為經過排序的文件,是的話不會提示任何內容,否則會提示出第一個出現錯誤的行

(3)

sort -r st1 //倒序輸出排序結果

(4)

sort -k2 st1 //將st1中的文件的第2列為主關鍵字進行排序

sort -k4 st1 //將st1中的文件的第4列為主關鍵字進行排序

(5)

sort -m st1 st2  //將st1與st2的內容合並。
//如果都是排序好的文件的話(st3為st1的排序結果,st4為st2的排序結果)可以直接將兩文件合並后排序

3.偽代碼及相關函數

已知存在st文件為待排序文本文件

(1)頭文件
(2)打開讀取文本文件
(3)創立二維數組,以i,j分別作為行號,列號
(4)將文本文件中的內容,按照文件中的順序代入數組,以空格區分列
(5)根據sort命令,判斷排序的主關鍵字(第幾列),然后將列數組進行冒泡排序
默認情況下冒泡排序:將num[1,1]與num[2,1],進行比對,若前者小於后者則繼續比對num[2,1]與num[3.1],否則將兩者順序互換,繼續比對num[2,1]與num[3.1],直到遍歷所有行
(6)在進行冒泡排序時,如果進行互換,還要將同一行的內容全部進行對換
(7)輸出最終結果
(8)關閉並保存文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM