Linux下sort命令的使用
来源:互联网
时间:2026-02-26 17:19:39
作者:
系统大全为您提供
Linux下的sort命令默认将文件中的每一行为单位,进行排序,然后输出。具体地,就是从每行的第一个字符开始,依次按ASCII码值进行比较,最后将结果按升序排序输出。 1、sort常用选项 -u 在排序的时候忽略相同的行,类似于uniq命令,不过uniq命令只能跳过相邻的相同行,并不能进行排序。-n 按照数字大小排序,而不是文本的ascii码顺序。-r 反序,也就是降序。-t 指定列分隔符,注意这里的分隔符只能是一个字符,不能是多个字符,-t, --field-separator=SEP use SEP instead of non-blank to blank transition,默认以非空到空的分隔作为列分隔符。-k 指定排序关键字的列。-s 有时候,sort会在根据指定字段排完序之后,自动根据其他字段进行resort,为了保证原来的数据记录的顺序,可以使用-s选项来禁止sort命令的resort机制。 这里的-k选项比较复杂,这里单独说一下-k后面指定参数的格式: ? 1 2 FStart.CStartModifier,FEnd.CEndModifier 开始部分 , 结束部分 -k选项用来指定排序的关键字列,也就是排序依据的字段。-k后的参数格式大致分为两个部分,开始部分和结束部分。开始部分中又可以看出三个参数:FStart、CStart和Modifier,其中FStart表示第第几列(FStart表示Field Start,也就是这个值用来指定排序依据所开始的列,列的序号从1开始,不是程序猿通常习惯的0),CStart表示第几个字符(Character Start,就是说这个值用来说明排序依据从该列的第几个字符开始,如果没有指定,默认从第一个字符开始),Modifier就是n、r等指定数值排序、逆序等的选项。与开始部分类似,结束部分也有三个参数:FEnd、CEnd和Modifier,其中FEnd就是指定排序依据到第几列结束,CEnd指定排序依据到该列的第几个字符结束,如果省略或者指定为0,则默认到该域的最后一个字符,Modifier的含义和开始部分一样。 注意,如果没有开始部分,则默认从行首开始,如果省略结束部分,则默认到行末结束。 2、例子 这里的例子用下面的文件作为例子: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 $ cat name_list.txt aName:aGender:aProfession:aBirthday:aHeight:aEtc. aName:aGender:aProfession:aBirthday:aHeight:aEtc. Abbie Cornishi:female:actor:19820807:1.73m:Klondike Hara Mikie:female:pictorial model:19870703:1.62m:Oscar Promotion Co., Ltd. Drew Barrymore:female:actor:19750222:1.63m:Music and Lyrics Kobe Bryant:male:NBA player:19780823:1.98m:Los Angeles Lakers Timothy Theodore Duncan:male:NBA player:19760425:2.11m:San Antonio Spurs Tony Parker:male:NBA player:19820517:1.88m:San Antonio Spurs Manu Ginóbili:male:NBA player:19770728:1.98m:San Antonio Spurs LaMarcus Nurae Aldridge:male:NBA player:19850719:2.11m:Portland Trail Blazers aName:aGender:aProfession:aBirthday:aHeight:aEtc. $ 2.1 常见的r,u,n选项的使用 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 $ sort name_list.txt Abbie Cornishi:female:actor:19820807:1.73m:Klondike aName:aGender:aProfession:aBirthday:aHeight:aEtc. aName:aGender:aProfession:aBirthday:aHeight:aEtc. aName:aGender:aProfession:aBirthday:aHeight:aEtc. Drew Barrymore:female:actor:19750222:1.63m:Music and Lyrics Hara Mikie:female:pictorial model:19870703:1.62m:Oscar Promotion Co., Ltd. Kobe Bryant:male:NBA player:19780823:1.98m:Los Angeles Lakers LaMarcus Nurae Aldridge:male:NBA player:19850719:2.11m:Portland Trail Blazers Manu Ginóbili:male:NBA player:19770728:1.98m:San Antonio Spurs Timothy Theodore Duncan:male:NBA player:19760425:2.11m:San Antonio Spurs Tony Parker:male:NBA player:19820517:1.88m:San Antonio Spurs $ sort -u name_list.txt Abbie Cornishi:female:actor:19820807:1.73m:Klondike aName:aGender:aProfession:aBirthday:aHeight:aEtc. Drew Barrymore:female:actor:19750222:1.63m:Music and Lyrics Hara Mikie:female:pictorial model:19870703:1.62m:Oscar Promotion Co., Ltd. Kobe Bryant:male:NBA player:19780823:1.98m:Los Angeles Lakers LaMarcus Nurae Aldridge:male:NBA player:19850719:2.11m:Portland Trail Blazers Manu Ginóbili:male:NBA player:19770728:1.98m:San Antonio Spurs Timothy Theodore Duncan:male:NBA player:19760425:2.11m:San Antonio Spurs Tony Parker:male:NBA player:19820517:1.88m:San Antonio Spurs $ sort -r name_list.txt Tony Parker:male:NBA player:19820517:1.88m:San Antonio Spurs Timothy Theodore Duncan:male:NBA player:19760425:2.11m:San Antonio Spurs Manu Ginóbili:male:NBA player:19770728:1.98m:San Antonio Spurs LaMarcus Nurae Aldridge:male:NBA player:19850719:2.11m:Portland Trail Blazers Kobe Bryant:male:NBA player:19780823:1.98m:Los Angeles Lakers Hara Mikie:female:pictorial model:19870703:1.62m:Oscar Promotion Co., Ltd. Drew Barrymore:female:actor:19750222:1.63m:Music and Lyrics aName:aGender:aProfession:aBirthday:aHeight:aEtc. aName:aGender:aProfession:aBirthday:aHeight:aEtc. aName:aGender:aProfession:aBirthday:aHeight:aEtc. Abbie Cornishi:female:actor:19820807:1.73m:Klondike $ sort -ru name_list.txt Tony Parker:male:NBA player:19820517:1.88m:San Antonio Spurs Timothy Theodore Duncan:male:NBA player:19760425:2.11m:San Antonio Spurs Manu Ginóbili:male:NBA player:19770728:1.98m:San Antonio Spurs LaMarcus Nurae Aldridge:male:NBA player:19850719:2.11m:Portland Trail Blazers Kobe Bryant:male:NBA player:19780823:1.98m:Los Angeles Lakers Hara Mikie:female:pictorial model:19870703:1.62m:Oscar Promotion Co., Ltd. Drew Barrymore:female:actor:19750222:1.63m:Music and Lyrics aName:aGender:aProfession:aBirthday:aHeight:aEtc.Abbie Cornishi:female:actor:19820807:1.73m:Klondike
2.2 -k字段的使用 (1)根据人名列表中出生年份字段排序 出生年份就是出生年月的前四个字符。 ? 1 2 3 4 5 6 7 8 9 10 11 12 $ sort -t : -k 4,4.4n name_list.txt aName:aGender:aProfession:aBirthday:aHeight:aEtc. aName:aGender:aProfession:aBirthday:aHeight:aEtc. aName:aGender:aProfession:aBirthday:aHeight:aEtc. Drew Barrymore:female:actor:19750222:1.63m:Music and Lyrics Timothy Theodore Duncan:male:NBA player:19760425:2.11m:San Antonio Spurs Manu Ginóbili:male:NBA player:19770728:1.98m:San Antonio Spurs Kobe Bryant:male:NBA player:19780823:1.98m:Los Angeles Lakers Abbie Cornishi:female:actor:19820807:1.73m:Klondike Tony Parker:male:NBA player:19820517:1.88m:San Antonio Spurs LaMarcus Nurae Aldridge:male:NBA player:19850719:2.11m:Portland Trail Blazers Hara Mikie:female:pictorial model:19870703:1.62m:Oscar Promotion Co., Ltd. (2)根据人名列表中出生月份字段排序 出生月份就是人名列表中出生年月字段的第5到第6字符。 ? 1 2 3 4 5 6 7 8 9 10 11 12 $ sort -t : -k 4.5,4.6n name_list.txt aName:aGender:aProfession:aBirthday:aHeight:aEtc. aName:aGender:aProfession:aBirthday:aHeight:aEtc. aName:aGender:aProfession:aBirthday:aHeight:aEtc. Drew Barrymore:female:actor:19750222:1.63m:Music and Lyrics Timothy Theodore Duncan:male:NBA player:19760425:2.11m:San Antonio Spurs Tony Parker:male:NBA player:19820517:1.88m:San Antonio Spurs Hara Mikie:female:pictorial model:19870703:1.62m:Oscar Promotion Co., Ltd. LaMarcus Nurae Aldridge:male:NBA player:19850719:2.11m:Portland Trail Blazers Manu Ginóbili:male:NBA player:19770728:1.98m:San Antonio Spurs Abbie Cornishi:female:actor:19820807:1.73m:Klondike Kobe Bryant:male:NBA player:19780823:1.98m:Los Angeles Lakers (3)根据身高排序 ? 1 2 3 4 5 6 7 8 9 10 11 12 $ sort -t : -k 5,5.4n name_list.txt aName:aGender:aProfession:aBirthday:aHeight:aEtc. aName:aGender:aProfession:aBirthday:aHeight:aEtc. aName:aGender:aProfession:aBirthday:aHeight:aEtc. Hara Mikie:female:pictorial model:19870703:1.62m:Oscar Promotion Co., Ltd. Drew Barrymore:female:actor:19750222:1.63m:Music and Lyrics Abbie Cornishi:female:actor:19820807:1.73m:Klondike Tony Parker:male:NBA player:19820517:1.88m:San Antonio Spurs Kobe Bryant:male:NBA player:19780823:1.98m:Los Angeles Lakers Manu Ginóbili:male:NBA player:19770728:1.98m:San Antonio Spurs LaMarcus Nurae Aldridge:male:NBA player:19850719:2.11m:Portland Trail Blazers Timothy Theodore Duncan:male:NBA player:19760425:2.11m:San Antonio Spurs到这里,指定字段的方法应该就说完了,以后用到更加复杂的仍会贴在这里。^_^
以上就是系统大全给大家介绍的如何使的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击系统大全官网吧。
本文来自系统大全https://www.herecours.com/d/file/efpub/2026/26-26/20260226170810569632
编辑推荐:
- Linux下sort命令的使用02-26
- Linux下获得CPU的信息02-26
- Linux文件系统挂载02-26
- linux无密码ssh登录02-26
- Cygwin安装02-26
- 如何在Linux下使用rsync进行数据备份02-26
- Linux系统设置命令别名02-26
- Linux中进行挂起(待机)的命令说明02-26
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- Cygwin安装
Cygwin安装
26-02-26 - 如何在Linux下使用rsync进行数据备份
如何在Linux下使用rsync进行数据备份
26-02-26 - AWE 2026 中国家电及消费电子博览会 3 月 12~15 日在上海举行:首次启用“一展双区”,超 1200 家企业参展
- Ubuntu系统Grub出现故障怎么办
Ubuntu系统Grub出现故障怎么办
26-02-26 - linux编译内核及添加系统调用(1)
linux编译内核及添加系统调用(1)
26-02-26 - 390W → 555W:网友极限改造未发布的英伟达 20GB RTX 3080 Ti 显卡
- 再有参与者退场:BUFFALO 巴法络计划于 2026 年 7 月停止销售蓝光播放器
- 博主反馈其华擎 X870 主板连毁两颗 AMD 9950X 处理器
博主反馈其华擎 X870 主板连毁两颗 AMD 9950X 处理器
26-02-26 - LG 推出“27G610A”27 英寸显示器:2K 200Hz,1199 元
- TrendForce:涨价效应带动 DRAM 内存产业 2025Q4 营收环比增长 29.4%
