sort 命令可以幫助咱們對文本文件和 stdin 進行排序操做;一般 會 結合其餘命令來生成所須要的輸出
ide
sort [選項] [文件名]
code
參數 | 描述 |
---|---|
-n | 基於字符串的長度來排序,使用此選項容許根據數字值排序,而不是字母值 |
-k | 指定排序關鍵字 |
-b | 默認狀況下,對整行進行排序,從每行的第一個字符開始。這個選項致使 sort 程序忽略每行開頭的空格,從第一個非空白字符開始排序 |
-m | 只合並多個輸入文件 |
-r | 按相反順序排序,結果按照降序排列,而不是升序 |
-t | 自定義分隔符,默認爲製表符 |
## -k 指定排序關鍵字 ## -n 根據數字值排序,而不是字母值 # ceph osd df | sort -k 7 -n ID WEIGHT REWEIGHT SIZE USE AVAIL %USE VAR MIN/MAX VAR: 0.00/1.37 STDDEV: 17.40 TOTAL 55449G 13848G 41601G 24.97 29 0.04999 1.00000 55810M 42004k 55769M 0.07 0.00 12 1.00000 1.00000 55810M 292M 55518M 0.52 0.02 13 1.00000 0.85999 55810M 361M 55449M 0.65 0.03 10 0.04999 1.00000 55810M 370M 55440M 0.66 0.03 2 1.00000 0.92999 55810M 382M 55427M 0.69 0.03 26 1.00000 1.00000 3704G 838G 2865G 22.63 0.91 22 1.00000 0.92999 3704G 892G 2811G 24.09 0.96 20 3.62000 0.85999 3704G 919G 2784G 24.82 0.99 15 1.00000 0.92999 3704G 932G 2772G 25.16 1.01 23 2.70999 1.00000 2773G 946G 1826G 34.12 1.37
## Modifier 部分就是相似 n 和 r 的選項部分 ## FStart.CStart 選定 大的範圍 ## FStart 就是表示使用的域 ## CStart 則表示在 FStart 域中從第幾個字符開始算「排序首字符」(FEnd 未設定時以這個爲準) ## CStart 是能夠省略的,省略的話就表示從本域的開頭部分開始 ## FEnd.CEnd 選定 小的範圍,能夠不設定 ## FEnd 表示 從 第幾列 排序 ## 若是不設定 End 部分,那麼就認爲 End 被設定爲行尾 ## 若是你省略.CEnd,則表示結尾到「域尾」,即本域的最後一個字符 ## CEnd 設定爲 0(零),也是表示結尾到「域尾」。 # ceph osd df | sort [ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]
## 先選定 5 ~ 8 列 ## 在 5 ~ 8 列之間,從第 七列 開始 排序,第八列 結束(不知道 怎麼 就成了 降序了) ## 我的以爲 後面 的 縮小 列範圍 是個 雞肋 功能 # ceph osd df | sort -k 5.8n,7.8 ID WEIGHT REWEIGHT SIZE USE AVAIL %USE VAR MIN/MAX VAR: 0.00/1.37 STDDEV: 17.40 TOTAL 55449G 13848G 41601G 24.97 23 2.70999 1.00000 2773G 946G 1826G 34.12 1.37 15 1.00000 0.92999 3704G 932G 2772G 25.16 1.01 20 3.62000 0.85999 3704G 919G 2784G 24.82 0.99 22 1.00000 0.92999 3704G 892G 2811G 24.09 0.96 26 1.00000 1.00000 3704G 838G 2865G 22.63 0.91 2 1.00000 0.92999 55810M 382M 55427M 0.69 0.03 10 0.04999 1.00000 55810M 370M 55440M 0.66 0.03 13 1.00000 0.85999 55810M 361M 55449M 0.65 0.03 12 1.00000 1.00000 55810M 292M 55518M 0.52 0.02 29 0.04999 1.00000 55810M 42004k 55769M 0.07 0.00
## 原諒我 沒完全 搞明白 這個 排序的邏輯思惟,簡單瞭解下 ## 不想過多解釋,對排序的 那一列 數值的數據 去重(只針對 數值 有效,字母無效) ## -u 去除 重複的行 # ceph osd df | sort -k 4 -n -u GHT REWEIGHT SIZE USE AVAIL %USE VAR 23 2.70999 1.00000 2773G 946G 1826G 34.12 1.37 15 1.00000 0.92999 3704G 932G 2772G 25.16 1.01 TOTAL 55449G 13848G 41601G 24.97 2 1.00000 0.92999 55810M 382M 55427M 0.69 0.03