1. 程式人生 > >Linux 操作命令 sort

Linux 操作命令 sort

是個 文件名 其他命令 total cto 結合 個人 2.6 解析

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

 

1、簡介

    sort 命令能夠幫助我們對文本文件和 stdin 進行排序操作;通常 會 結合其他命令來生成所需要的輸出
    

2、用法/命令格式

    sort [選項] [文件名]
    

3、常用參數解析

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

    

4、常用案例

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 

Linux 操作命令 sort