Linux 操做命令 sort

Linux Shell 操做命令 目錄總覽(點擊查看詳細信息)

 

一、簡介

    sort 命令可以幫助咱們對文本文件和 stdin 進行排序操做;一般 會 結合其餘命令來生成所須要的輸出
    ide

二、用法/命令格式

    sort [選項] [文件名]
    code

三、經常使用參數解析

參數 描述
-n 基於字符串的長度來排序,使用此選項容許根據數字值排序,而不是字母值
-k 指定排序關鍵字
-b 默認狀況下,對整行進行排序,從每行的第一個字符開始。這個選項致使 sort 程序忽略每行開頭的空格,從第一個非空白字符開始排序
-m 只合並多個輸入文件
-r 按相反順序排序,結果按照降序排列,而不是升序
-t 自定義分隔符,默認爲製表符

    

四、經常使用案例

4.1 ceph 磁盤 使用率 查詢(單列排序)

## -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

    

4.2 ceph 磁盤 使用率 查詢(多列 排序)

4.2.1 語法解釋

## 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 ] ]

    

4.2.2 事例

## 先選定 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

    

4.3 去重(建議 使用 unique)

## 原諒我 沒完全 搞明白 這個 排序的邏輯思惟,簡單瞭解下
## 不想過多解釋,對排序的 那一列 數值的數據 去重(只針對 數值 有效,字母無效)
## -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
相關文章
相關標籤/搜索