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就到了最后。


结论

其他的话就不贴了,反正都是同样的步骤,然后找点网上的题目实践看看。

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