利用sort对多字段排序
线上直播环境中需要从nginx访问日志中分析每个client在一个小时内的访问情况,需要使用sort对多重字段进行排序。
sort基础知识回顾
下面是需要用到的sort的知识点:
sort语法
[root@www ~]# sort [-fbMnrtuk] [file or stdin]
选项与参数:
-f :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b :忽略最前面的空格符部分;
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n :使用『纯数字』进行排序(默认是以文字型态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :分隔符,默认是用 [tab] 键来分隔;
-k :以那个区间 (field) 来进行排序的意思(其中,用来指明选定域的结束位置,默认到行尾)
其中我们需要知道-k这个选项。
我们先看一个简单的例子:
对使用冒号分隔的第三项(到末尾)进行排序(department_id),并去掉重复项
$ sort -t: -u -k 3 names.txt
Emma Thomas:100:Marketing
Madison Randy:300:Product Development
Alex Jason:200:Sales
Sanjay Gupta:400:Support
如果要对/etc/passwd,先以第六个域的第2个字符到第4个字符进行正向排序,再基于第一个域进行反向排序。
cat /etc/passwd | sort -t':' -k 6.2,6.4 -k 1r
sync:x:4:65534:sync:/bin:/bin/sync
proxy:x:13:13:proxy:/bin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
下面对指定字段的多重排序问题再做强调:
这里先按第2列排序,再按照第1列排序。注意, 这里按第一列排序应该写成-k1,1而不能是-k1
业务日志分析
通过上面的多重排序输出,我们可以很清楚地分析某个client ip在一小时内所有请求的响应时间,如果都比较长,说明该client所在的网络环境不太好。
利用sort对多字段排序相关推荐
- linux sort 时间排序,linux sort多字段排序实例解析
本文研究的主要是linux sort多字段排序,具体介绍如下. Linux多数发行版自带的sort程序,非常强大,在此只说多字段排序 sort 有个参数-k,可以指定字段,有比较复杂的语法,不在文本范 ...
- C++:利用sort()对vector中的数据自定义排序
//假如一个文件对应一个坐标,想对文件按照坐标的x或y轴进行排序 //先把这个结构体放进vector中,利用sort()排序struct PathIndexPair {Point2i point; / ...
- 【C#】C# List Sort 按照字母排序 多字段排序
新建Person进行测试 public class Person {public int ID { get; set; }public string Name { get; set; } } 创建li ...
- mysql key value 排序_MySQL利用索引优化ORDER BY排序语句的方法
创建表&创建索引 create table tbl1 ( id int unique, sname varchar(50), index tbl1_index_sname(sname desc ...
- 全字段排序 VS rowid 排序
CREATE TABLE `t` (`id` int(11) NOT NULL,`city` int(11) NOT NULL,`name` varchar(16) NOT NULL,`age` in ...
- MyBatis Plus实现动态字段排序
利用周末时间,对自己的项目进行了升级,原来使用的是tkmybatis,改为mybatis plus.但是返回数据的格式变了,导致前端页面自带的字段排序失效了,需要刷新表格才会排序,于是决定在服务端实现 ...
- linux sort 多列去重排序,【Linux】sort排序、uniq去重、wc统计
文章目录 一.sort 排序 1.语法 2.参数说明 3.实例 二.uniq 去重 1.uniq使用 2.sort和uniq去重结果对比 三.wc 统计 一.sort 排序 sort命令用于 对文本文 ...
- vim 按照字段排序文件
假设有如下数据,以空格为数据列分割: 1 何维川 124.63 172 0.72 2 张子寅 99.67 172 0.58 3 周广滨 93.34 1 ...
- 利用jQuery对无序列表排序 http://www.apkbus.com/android-80639-1-1.html
利用jQuery对无序列表排序的原理是:获取到无序列表中的所有列表项,并转成数组形式,使用JavaScript函数对其进行排序后再次输出.其中使用到的jQuery函数有ready().get().te ...
最新文章
- python自动翻译小工具_Python实现翻译小工具
- 首届清华智班30人名单公布:贵校第一批AI本科生,状元金牌云集,与姚班“抢人”...
- 栈(Stack) 任何程序执行前,预先分配一固定长度的内存空间
- wine和steam的区别
- 爬取网易云音乐歌曲特色榜单信息
- 2-3:配置与环境之定制提示符
- Cisco ASR1002-X告警处理
- MySQL自定义查询字段排序
- Java中Double保留后小数位的几种方法
- URL编码(urlencoding)中关于空格的问题
- 为什么用户在注册时需要使用邮箱或手机号作为注册名?
- msfconsole 控制台简介
- echarts label固定位置_echarts 饼状图调节 label和labelLine的位置
- 腾讯历届笔试题(1)
- 面向对象分析与设计01 - 关键抽象
- EndnoteX9下载及教程
- 服务器e4系列,Intel Xeon E系列服务器处理器
- python实现数据可视化_使用Matplotib python实现数据可视化
- jquery实现省市区三级联动
- 3000字干货!如何做好一个BI项目的规划和需求定义?
热门文章
- NetCore学习实践1__项目创建和配置文件的获取
- [LeetCode] 130. Surrounded Regions Java
- ecshop微信扫描支付开发
- CS Tip 16: 利用注释
- OpenCV+python:人脸检测
- usaco Raucous Rockers(dp)
- html post 图片,如何发送图片作为多部分POST请求的一部分 - Java HtmlUnit
- 计算机的网络端口管理器,Win7设备管理器没有端口选项的三大原因及解决措施...
- android zxing作用,Android / ZXing不再有效
- c语言中求一个数的因数,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...