1 #首先文本是這樣 2 q:118:5650 3 j:217:5300 4 c:302:4950 5 q:118:5650 6 m:441:5450 7 f:515:5100 8 v:713:5900 9 t:817:5800 10 t:817:5800 11 c:797:4950 12 m:986:5450 13 m:986:5450 14 o:1115:5550
sort不使用參數的時候算法
nange@meishi:~$ cat 33.txt |sort c:302:4950 c:797:4950 f:515:5100 j:217:5300 m:441:5450 m:986:5450 m:986:5450 o:1115:5550 q:118:5650 q:118:5650 t:817:5800 t:817:5800 v:713:5900 #sort不使用參數的時候,只是將文本排序了而已,並無去除重複的數據
sort -u能夠去除重複的數據緩存
1 nange@meishi:~$ cat 33.txt |sort -u 2 c:302:4950 3 c:797:4950 4 f:515:5100 5 j:217:5300 6 m:441:5450 7 m:986:5450 8 o:1115:5550 9 q:118:5650 10 t:817:5800 11 v:713:5900
sort -t和-k配合其餘使用dom
1 #-t指定分隔符 2 #-k指定按照第幾列排序 3 nange@meishi:~$ cat 33.txt |sort -k 3 -t ':' 4 c:302:4950 5 c:797:4950 6 f:515:5100 7 j:217:5300 8 m:441:5450 9 m:986:5450 10 m:986:5450 11 o:1115:5550 12 q:118:5650 13 q:118:5650 14 t:817:5800 15 t:817:5800 16 v:713:5900 17 #使用-u去重 18 nange@meishi:~$ cat 33.txt |sort -uk 3 -t ':' 19 c:302:4950 20 f:515:5100 21 j:217:5300 22 m:441:5450 23 o:1115:5550 24 q:118:5650 25 t:817:5800 26 v:713:5900 27 #使用-u去重,-r逆向排序 28 nange@meishi:~$ cat 33.txt |sort -ruk 3 -t ':' 29 v:713:5900 30 t:817:5800 31 q:118:5650 32 o:1115:5550 33 m:441:5450 34 j:217:5300 35 f:515:5100 36 c:302:4950
排序選項:ide
-b, --ignore-leading-blanks 忽略前導的空白區域
-d, --dictionary-order 只考慮空白區域和字母字符
-f, --ignore-case 忽略字母大小寫
-g, --general-numeric-sort compare according to general numerical value
-i, --ignore-nonprinting consider only printable characters
-M, --month-sort compare (unknown) < 'JAN' < ... < 'DEC'
-h, --human-numeric-sort 使用易讀性數字(例如: 2K 1G)
-n, --numeric-sort 根據字符串數值比較
-R, --random-sort 根據隨機hash 排序
--random-source=文件 從指定文件中得到隨機字節
-r, --reverse 逆序輸出排序結果
--sort=WORD 按照WORD 指定的格式排序:
通常數字-g,高可讀性-h,月份-M,數字-n,
隨機-R,版本-V
-V, --version-sort 在文本內進行天然版本排序ui
其餘選項:spa
--batch-size=NMERGE 一次最多合併NMERGE 個輸入;若是輸入更多
則使用臨時文件
-c, --check, --check=diagnose-first 檢查輸入是否已排序,若已有序則不進行操做
-C, --check=quiet, --check=silent 相似-c,但不報告第一個無序行
--compress-program=程序 使用指定程序壓縮臨時文件;使用該程序
的-d 參數解壓縮文件
--debug 爲用於排序的行添加註釋,並將有可能有問題的
用法輸出到標準錯誤輸出
--files0-from=文件 從指定文件讀取以NUL 終止的名稱,若是該文件被
指定爲"-"則從標準輸入讀文件名
-k, --key=KEYDEF sort via a key; KEYDEF gives location and type
-m, --merge merge already sorted files; do not sort
-o, --output=文件 將結果寫入到文件而非標準輸出
-s, --stable 禁用last-resort 比較以穩定比較算法
-S, --buffer-size=大小 指定主內存緩存大小
-t, --field-separator=分隔符 使用指定的分隔符代替非空格到空格的轉換
-T, --temporary-directory=目錄 使用指定目錄而非$TMPDIR 或/tmp 做爲
臨時目錄,可用多個選項指定多個目錄
--parallel=N 將同時運行的排序數改變爲N
-u, --unique 配合-c,嚴格校驗排序;不配合-c,則只輸出一次排序結果
-z, --zero-terminated 以0 字節而非新行做爲行尾標誌
--help 顯示此幫助信息並退出
--version 顯示版本信息並退出debug