1. 程式人生 > 實用技巧 >linux命令-sort

linux命令-sort

目錄

1. 主要選項

對文字行排序。
預設排序規則:
空白在前,字元在後;
大寫在前,小寫在後;

選項 說明
-b 忽略前導的空白符;
-f 忽略大小寫;
-t 指定分隔符,"-t:"指定:為分隔符;
-k 指定比較的欄位,-k 2,表示比較第二個欄位;-k2.1,2.3表示從第2個欄位的第1個字元,比較到2個欄位的第3個字元;
-n 以整數數字比較;

2. 預設排序

示例文字, 後續命令都使用該文字

$ cat log.txt
a40:123

a5:400
    c12:60
    c5:59
B30:7
b4:9

說明:預設排序,空白在前/字元在後,大寫在前/小寫在後

命令:

$ sort log.txt

    c12:60
    c5:59
B30:7
a40:123
a5:400
b4:9

3. 忽略前導空白字元

說明:略
命令:

$ sort -b log.txt

B30:7
a40:123
a5:400
b4:9
    c12:60
    c5:59

4. 忽略大小寫

說明:略
命令:

$ sort -f log.txt

    c12:60
    c5:59
a40:123
a5:400
B30:7
b4:9

5. 指定分隔符、指定比較的欄位

說明:
"-t:", 指定冒號為分隔符
"-k2", 指定通過比較第二個欄位來排序
"-k2.1,2.2", 指定通過比較第二個欄位的前兩位來排序, 例子見-n選項

下例中,按第二個欄位排序:123,400,59,60,7,9
命令:

$ sort -t: -k2 log.txt

a40:123
a5:400
    c5:59
    c12:60
B30:7
b4:9

6. 以整數數字大小排序

說明:預設情況下,11排在前面,9排在後面,要按數字大小排序,使用-n選項
命令:第二個欄位以數字大小排序:7,9,59,60,123,400

$ sort -t: -k2 -n log.txt

B30:7
b4:9
    c5:59
    c12:60
a40:123
a5:400
$ 
$ sort -t: -k2.1,2.2  -n log.txt #按前兩位的整數大小排序,所以400排在59前面。

B30:7
b4:9
a40:123
a5:400
    c5:59
    c12:60