Linux的Sort命令

Sort是一個命令,是用來對文件或者輸入的內容進行排序


sort - sort lines of text files

語法結構

sort [option] [file]
  1. order-sort的參數列表
    • -b –ignore-leading-blanks 忽略每行前面開始出的空格字符
    • -d –dictionary 只考慮空和數字字母的排序
    • -f –ignore-case 忽視大小寫排序
    • -g –general-numeric-sort 根據一般數值進行比較排序
    • -i –ignore-nonprinting 只考慮打印的字符
    • -M –month 月份排序 < ‘JAN’ < … < ‘DEC’
    • -n –numeric 根據數值大小排序
    • -r –reverse 倒序
  2. other-options參數列表
    • -c 檢查是否排序
    • -k 排序哪一列
    • -m 合併已經排序的文件
    • -o 輸出到哪個文件
    • -t <分隔字符> 指定排序時所用的欄位分隔字符。
    • -u 排序,並將重複數據只顯示第一個

下面是對sort的一些實例試用

1 -n和-r的使用

20151008  wc -l *
       1 a
       1 b
      20 fib.py
       4 low_up
      12 test
☁  20151008  wc -l * |sort -n
       1 a
       1 b
       4 low_up
      12 test
      20 fib.py
☁  20151008  wc -l * |sort -nr
      20      47     439 fib.py
      12      12      38 test
       4       4       8 low_up
       1       1       9 b
       1       1       8 a

2 -k 排序哪一列

20151008  wc -l * |sort -k2
  729288 10-09-2015_04_56_22_AM_TRM_WW_BF4_ZodiacMission_Libra_OCT15_20151009.txt
       1 a
       1 b
      20 fib.py
       4 low_up
      12 test
☁  20151008  wc -l * |sort -k1
       1 a
       1 b
       4 low_up
      12 test
      20 fib.py
  729288 10-09-2015_04_56_22_AM_TRM_WW_BF4_ZodiacMission_Libra_OCT15_20151009.txt

3 -f 忽視大小寫排序

20151008  cat low_up
a
v
W
G
☁  20151008  sort low_up
G
W
a
v
☁  20151008  sort -f low_up
a
G
v
W

4 -n –numeric 根據數值大小排序

20151008  sort test
"12"
"412"
"8"
"asd"
1
2
3
4
5
6
as
f
☁  20151008  sort -n test
"12"
"412"
"8"
"asd"
as
f
1
2
3
4
5
6

5 -t <分隔字符> 指定排序時所用的欄位分隔字符。

20151008  wc -l * | sort
       4 low_up
      12 test
      20 fib.py
  180917 10-12-2015_02_28_11_PM_TRM_WW_BFHL_CM_TEC9_OCT15_20151012.txt
  729288 10-09-2015_04_56_22_AM_TRM_WW_BF4_ZodiacMission_Libra_OCT15_20151009.txt
 1264154 10-12-2015_01_09_02_PM_TRM_WW_Minions_Paradise_Launch_OCT15_20151012.txt
 2289875 10-13-2015_12_37_43_PM_TRM_WW_Minions_Paradise_Launch2_OCT15_20151013.txt
 4464270 total

☁  20151008  wc -l * | sort -n -t '-' -k2
       4 low_up
      12 test
      20 fib.py
 4464270 total
  729288 10-09-2015_04_56_22_AM_TRM_WW_BF4_ZodiacMission_Libra_OCT15_20151009.txt
  180917 10-12-2015_02_28_11_PM_TRM_WW_BFHL_CM_TEC9_OCT15_20151012.txt
 1264154 10-12-2015_01_09_02_PM_TRM_WW_Minions_Paradise_Launch_OCT15_20151012.txt
 2289875 10-13-2015_12_37_43_PM_TRM_WW_Minions_Paradise_Launch2_OCT15_20151013.txt20151008  wc -l * | sort -n -t '-' -k2.2
       4 low_up
      12 test
      20 fib.py
 4464270 total
  180917 10-12-2015_02_28_11_PM_TRM_WW_BFHL_CM_TEC9_OCT15_20151012.txt
 1264154 10-12-2015_01_09_02_PM_TRM_WW_Minions_Paradise_Launch_OCT15_20151012.txt
 2289875 10-13-2015_12_37_43_PM_TRM_WW_Minions_Paradise_Launch2_OCT15_20151013.txt
  729288 10-09-2015_04_56_22_AM_TRM_WW_BF4_ZodiacMission_Libra_OCT15_20151009.txt

上面的結果可能比較亂,大體的意思就是通過第二列數值排序,然後進行-的分割,k2.2的意思就是第二列的第二個字符開始比較,所以那個09就到了最後。


結論

其他的話就不貼了,反正都是同樣的步驟,然後找點網上的題目實踐看看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章