你可能不知道的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表示反向(从高到低)排序。
有些说明文档给出来的是错误的,请注意哈。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步