每天一点linux命令 sort排序

本文详细介绍Linux下sort命令的使用方法,包括常见参数如-n(数字排序)、-r(倒序)、-u(去重)、-k(指定列排序)及-t(指定分隔符)等。通过实例演示如何高效利用sort进行数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

命令功能:

通过sort命令可以实现对输入流或者文本内容进行排序,并将结果输出。

命令语法:

sort  [option]  [file]

命令参数:

参数说明
-k指定列,排序会按照此列为基准进行排序
-r倒序排序
-t指定排序的分隔符
-h可以带单位进行比较,比如2K,3M,4G等等,不需要在转换成一样的单位
-u排序时如果有相同行,会进行合并,把重复行去掉
-n按照数字的大小进行排序

以上,应该是sort最常使用的几个参数,其他的参数还有很多,如需使用,可以使用查询帮助:

man sort  或者 sort --help

命令示例

1、不加参数

sort会按照ASCII码从第一个字符开始进行比较,第一个字符相同再按照第二个字符、第三个字符…依次论推进行比较。
这里有一个sort_num文件进行排序测试,如下:
在这里插入图片描述
命令:sort sort_num
结果如下:
在这里插入图片描述
这里18最大却排在了前面,由于没加任何参数,18实际上会被当做两个字符"1"和"8",所以按照ASCII码的顺序,"1"当然比第二行同位置的"4"以及第六行同位置的"5"以及最后一行的"8"小,所以排在前面了。

2、加参数-n:按数字排序

这个参数会把文本按数字进行排序,还是1中的例子:
命令:·sort -n sort_num
在这里插入图片描述
这次18排在后面啦!

3、参数-r:倒序排序

这就是顺序和没加参数的sort结果反过来。正常的sort命令是按照ASCII码顺序依次从小往大排,-r就是从大往小排。
命令:sort -r sort_num
在这里插入图片描述

4、参数-u:去除重复值:

比如这个sort_num文件,加参数-u会把包含4的行做去重操作,只保留一个。
在这里插入图片描述

5、参数-k:指定要比较的列

默认情况下,如果要比较的数据中有多个列,那么sort比较默认会比第一列,加-k参数,会按照指定的列进行比较:
如下,:
在这里插入图片描述
命令:sort -k 2
在这里插入图片描述

6、参数-t:指定分隔符

默认情况下,我们用-k指定列时,列与列之间默认是用空格或者tab键隔开的。-t可以指定分隔符为别的符号。比如passwd文件,我们指定以冒号为分割,按第三列进行比较,如下:
在这里插入图片描述

7、-k参数的进阶使用

-k参数可以使用多次,按照多列进行排序。
这里有个文档,如下:
在这里插入图片描述我们对这个ip列表用".“分隔,先对第四列排序,然后在对第三列排序。
命令:sort -t . -k 4.1,4.2 -k 3,3 sort_ip
参数解释:
-t . 以”."为分隔符进行分割
-k 4.1,4.2:先按照第4列进行排序,从第四列的第一个字符到第四列的第二个字符。
-k 3,3按照第3列进行排序。
结果:
在这里插入图片描述可以看到,结果是优先排序第四列,如果第四列相同,会按照第三列进行排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值