Linux下sort命令的使用

2021-04-26 07:30:49 字數 898 閱讀 3744

linux的sort命令是coreutils的一部分,最詳細的介紹可以參見coreutils文件中「operating on sorted files」一章。我在實際應用的過程中有幾點體會:

- 在對很大的檔案進行排序的時候,sort會自動的使用外部排序,即通過分隔檔案排序再歸併的方法完成最後的排序。但是,sort會使用系統預設的臨時檔案 夾儲存排序過程中的臨時檔案,當預設臨時資料夾的磁碟空間不足以儲存臨時檔案時,排序就會失敗。因此在對很大的檔案進行排序時,最好用-t引數指定臨時文 件夾,用磁碟空間充足的資料夾作為排序時的臨時資料夾。

- sort預設用tab與space作為分隔符,所以如果在引數中寫sort -t /t,sort會認為分隔符是/t,而不是tab。換句話說如果希望排序的元素如果是「1/t2/t3」就應該這樣設定。我就在這裡吃了些虧。因此如果需 要排序的檔案本來就是用tab分隔好的,就不需要指定分隔符了,用預設的就好了。

- 如果待排序的元素是url(或者含有許多符號的字串),就要小心了。sort在字串的比較時會忽略對一些字元的比較,例 如:"www.sohu.com.cn"與"www.so.gou.com.cn"的比較,如果按照嚴格的字串比較,"www.soh"中的'h'的 ascii碼大於"www.so."中的'.',因此"www.sohu.com.cn"應該大於"www.so.gou.com.cn",但是sort 在比較的結果正好相反。sort對於特殊字元的處理規則我沒有查到,在設定引數中我也沒有找到相應的設定。總之,如果只是想實現乙個排序還是可以用 sort的,但是如果想對sort排序後的檔案進行二分查詢,由於不知道比較規則,就不能實現了(因此在對字串排序時需要仔細考慮,我就是自己寫外排程 序進行排序的,也可以將url轉換成md5編碼再用sort進行排序)。這也算是sort的一點瑕疵吧。

- sort對分隔符的要求是乙個字元,換句話說如果是字串就不行了。這在實際使用

linux下的Sort命令

sort命令是在linux裡非常有用,它將檔案進行排序,並將排序結果標準輸出。sort命令既可以從特定的檔案,也可以從stdin中獲取輸入。sort 選項 引數 b 忽略每行前面開始出的空格字元 c 檢查檔案是否已經按照順序排序 d 排序時,處理英文本母 數字及空格字元外,忽略其他的字元 f 排序時...

Linux 關於 sort 命令的使用

一 簡介 sort是linux中用於文字排序的命令,對文字和二進位制檔案的記錄 行 進行排序或合併。二 常用引數 n 按數值大小排序 t 指定分隔符,沒有指定時,以空白作為分隔符 k 排序字段 如 k1 按第1個字段排序 k 1.2,3.4 按從第1個字段的第2個字元起,到第3個字段第4個字元止,進...

linux的uniq和sort命令使用

環境 centos 1 uniq命令解析 root deam uniq cat file.txt 原檔案 123123 134456 123 root deam uniq uniq file.txt 刪除所有連續的重複行,只顯示唯一的行。123134 456123 root deam uniq so...