mybatis-plus根据多个字段排序_多个场景,带你了解Linux操作系统sort命令,非常实用...

可能有些人认为,程序员不就是写代码的么?为什么需要掌握其他技能。就个人而言,一天的工作中,写代码的时间只有2-3个小时,更多的时间是在查问题,帮产品、运营捞一些数据,以协助他们优化,或者看看监控与日志,看看系统有没有什么存在的风险和优化的空间。

在生活中我们常常遇到这样的场景,需要在日志中查找有多少个满足条件的日志,并按照一定的规律进行排序,然后去重。比如说我们因为系统抖动,有一部分用户的优惠券发放失败了,我们需要把这部分用户筛选出来,并对其去重,可能还要根据用户的操作次数,对其进行不同程度的安抚。

bea98e9dd49273b3d579191ada6f3a46.png

这不就是一个Excel可以解决的问题么?但是在程序员届,使用Excel来处理数据是活在鄙视链下端的,今天我们来学习一个强力的Shell脚本,sort命令。我们通过几个非常常用的场景,来介绍这个命令。

场景一

相信每一个程序员都遇到过这样的场景,系统除了点问题,导致部分用户使用某些功能失败了,我们会把用户的失败日志打下来,我们可以轻松的过滤到每个文件中的用户id,那么我们怎么把多个文件进行排序去重合并呢?这个时候,我们就能够用到sort命令了!

sort file1 file2 file3 .. | uniq > all.txt

将多个文件进行排序,最后使用uniq命令,去掉重复的行数。

06b29af9f22c0ca310e68f6383f12dcf.png

场景二

我们常常需要统计一个接口的访问次数,或者需要统计一个接口的调用时间,如果我们有CAT这样的中间件当然非常方便,假如我们有在日志中进行统计呢?举个简单的例子,我们从日志中简单处理了日志的访问次数,如下图所示。

getItem 2000 20mspayOrder 500 100msgetOrder 1000 55ms

如果我们要根据第二列降序排序,可以如何操作呢?把数据导到一个Excel么?还是写一段代码进行处理,作为一个极客程序员,当然要用shell脚本啦!

sort -nkr 2 filename

在这里,-n表示用数字格式进行排序,-r表示逆序,-k 2表示用第二列进行排序。

场景三

Redis是我们非常常用的一个缓存中间件,偶尔我们需要对key进行一些统计或者分析,但是redis的key往往我们会拼一些前缀,我们只想使用中间的若干个字符进行排序,那怎么办呢?不烦试试下面这个命令。

sort -k X.a,X.b filename

在这里,X表示每一行的第几个域,a,b表示从第几个字符到第几个字符。

如果我们需要对多个字段进行排序,我们只要使用多个-k即可,如下所示。

sort -k 1 -k 2 filename

我们先按第一个字段进行排序,第一个字段相同则按照第二个字段进行排序。

1bbbc6567067f738663164c8ebe8a525.png

总结

在Linux中,sort命令是一个非常常用的命令,掌握这个命令,可以让你变得更加极客!不要再写代码去处理文件了,也不要使用Excel了,作为一个专业的程序员或运维人员,sort命令是我们必须掌握的,如果你还想了解更多,可以使用man sort命令进行了解。

好了,今天我们介绍到这里。欢迎大家关注我,整理后会和大家继续分享。大家的支持是我继续唠嗑的动力。同名公众号(沙茶敏碎碎念)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值