你可能不知道的Linux/GNU bash sort多列排序功能

(转载请注明原创于潘多拉盒子)

Linux man pages的缺点就是,如果你不会用某个命令,那么看完了多半还是不会。原因是,没有例子!比较囧吧?

sort是提供了多列排序的功能的。通过-k选项,可以搞出来若干个排序列组,每个组内按照指定的原则排序,优先级从高到低。

比如一个文件内容如下:

Tom  Mathematics  95

Jack  Mathematics  99

Tom  Physics  78

Jack  Physics  65

 

如果想将同一个名字的不同科目的分数按从高到低排列起来,那么就是

sort -k1,1 -k3nr,3 

 

是不是很神奇呢?

 

每一个-k选项指定了一个排序列组,逗号左边的数字是起始列,逗号右边的数字是结束列号(从1开始),其余的选项为specs。比如-n表示按数字排序,-r表示反向(从高到低)排序。

 

有些说明文档给出来的是错误的,请注意哈。

 

 

 

posted @ 2014-01-06 15:57  潘多拉盒子  阅读(1263)  评论(0编辑  收藏  举报