【Shell】sort 筆記

楊奇龍發表於2017-07-15
寫底層程式碼的時候,經常使用sort命令對檔案或者文字進行排序,本文對sort做簡單記錄作為學習筆記。sort 的功能是將檔案/文字的每一行作為一個單位,相互比較,比較原則是從首字元向後,依次按ASCII碼值進行比較,最後將他們按升序輸出。
常用的引數
  1. -t, --field-separator=SEP   分隔符:指定排序時所用到的欄位分隔符,通常和 k 一起使用
  2. -k, --key=POS1[,POS2]       指定需要排序的列數,比如-k 1,3 按照第一列和第三列排序。
  3. -b, --ignore-leading-blanks 忽略每行前面開始處的空格字元
  4. -d, --dictionary-order      排序時,處理英文字母、數字和空格字元,以字典順序排序。忽略其他所有字元
  5. -f, --ignore-case           將小寫字母視為大寫字母進行排序。
  6. -i, --ignore-nonprinting    排序時,處理 040~176 之間的 ASCII 字元,忽略其他所有字元。
  7. -r, --reverse               以相反的順序進行排序,倒序。
  8. -u  --unique                去掉重複的記錄
其他排序引數:
  1. -g, --general-numeric-sort 按照數值大小進行排序。 和n在一般情況的都一致,對於科學計數的排序可以使用-g
  2. -n, --numeric-sort 按照字元的數值大小進行排序。
  3. -M, --month-sort 將前面3個字母按月份的縮寫進行排序。
  4. -c, --check 檢查檔案是否已經按照順序排序,排序過為真。
  5. -m, --merge 將幾個排序好的檔案進行合併。
  6. -o, --output=FILE 將排序後的結果存入FILE,不在控制檯輸出。



例子
?  ~ cat  1.txt
AA:BB:CC
aa:30:6
cc:50:3
dd:20:7
bb:10:2
ee:40:4
ee:60:1


以:分隔,按照第三列排序
?  ~ sort  -t: -k3 1.txt
ee:60:1
bb:10:2
cc:50:3
ee:40:4
aa:30:6
dd:20:7
AA:BB:CC

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-2142113/,如需轉載,請註明出處,否則將追究法律責任。

相關文章