记一次Linux下数据统计
程序员文章站
2022-04-08 15:49:04
需求: 服务端有应用访问日志,需要统计某一个API,访问top N的通道。 统计思路: 1、筛选/过滤待统计API; 2、分割,获取待统计具体字段; 3、计数; 4、按照计数结果降序排序; 5、截取top N. 最终命令如下: 各个命令详细用法见下文: awk awk是一种编程语言,用于Linux/ ......
- 需求:
服务端有应用访问日志,需要统计某一个API,访问top N的通道。
- 统计思路:
1、筛选/过滤待统计API;
2、分割,获取待统计具体字段;
3、计数;
4、按照计数结果降序排序;
5、截取top N.
- 最终命令如下:
grep "API name" access.log | awk -F'{' '{print $4}' | awk -F',' '{print $5}' | sort -r | uniq -c | sort -rn | head N
各个命令详细用法见下文:
awk
awk是一种编程语言,用于Linux/unix下对文本和数据进行处理。awk非常强大,这里只列出这次使用到的皮毛。
- 语法
awk [options] patern语句块
- 常用选项
- -Ffs,fs指定分隔符,可以是字符串或者正则表达式;
- print $N,打印第N个字符。
- -Ffs,fs指定分隔符,可以是字符串或者正则表达式;
sort
sort:将文件进行排序并且将排序结果标准输出
- 语法
sort (选项) (参数)
- 参数
- 文件:指定待排序的文件列表
- 选项
- -r:以降序排序,默认是升序;
- -n:依照数值的大小排序,默认是ASCII;
- -t:指定排序时所用的栏位分隔字符;
分隔字符> - -k:指定排序的栏位;
- -u/uniq:忽略相同行;
- -o:排序结果输出文件;
- -r:以降序排序,默认是升序;
uniq
uniq:统计或者删除文件中的重复行,一般与sort命令结合使用
- 语法
uniq (选项) (参数)
- 参数
- 输入文件,默认标准输入
- 输出文件,默认标准输出
- 输入文件,默认标准输入
- 选项
- -c/--count:统计重复行数;
- -d/--repreated:仅显示重复出现的行列;
- -u/--unique:仅显示出现一次的列;
- -f或--skip-fields=:忽略比较指定的栏位;
栏位>栏位> - -s或--skip-chars=:忽略比较指定的字符;
字符位置>字符位置> - -w或--check-chars=:指定要比较的字符。字符位置>字符位置>
- -c/--count:统计重复行数;
head
head:默认显示文件开头10行。
- 语法
head (选项) (参数)
- 参数
- 文件列表
- 文件列表
- 选项
- -n:指定显示行数;
数字> - -c:指定显示字符数;数字>
- -n:指定显示行数;
上一篇: 经典的职场段子冷笑话
下一篇: 微信将禁止发送这类信息 违者封号
推荐阅读
-
Linux下修改MySQL数据表中字段属性
-
oracle数据库下统计专营店的男女数量的语句
-
linux下备份MYSQL数据库的方法
-
linux下改良版本mysqldump来备份MYSQL数据库
-
详解在Windows环境下访问linux虚拟机中MySQL数据库
-
Linux系统下导出ORACLE数据库出现Exporting questionable statistics.错误 处理
-
Linux下删除大数据文件中部分字段重复行的方法
-
linux下Vps自动备份web和mysql数据库的脚本
-
linux下32位机与64位机基本数据类型长度区别介绍
-
Linux下通过script 命令记录(数据库)操作步骤