您的位置:首页 > 运维架构 > Shell

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

2014-01-06 15:57 357 查看
(转载请注明原创于潘多拉盒子)

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表示反向(从高到低)排序。

有些说明文档给出来的是错误的,请注意哈。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: