• 需求:
    服务端有应用访问日志,需要统计某一个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个字符。

sort

sort:将文件进行排序并且将排序结果标准输出

  • 语法

sort (选项) (参数)

  • 参数

    • 文件:指定待排序的文件列表
  • 选项
    • -r:以降序排序,默认是升序;
    • -n:依照数值的大小排序,默认是ASCII;
    • -t:指定排序时所用的栏位分隔字符;
    • -k:指定排序的栏位;
    • -u/uniq:忽略相同行;
    • -o:排序结果输出文件;

uniq

uniq:统计或者删除文件中的重复行,一般与sort命令结合使用

  • 语法

uniq (选项) (参数)

  • 参数

    • 输入文件,默认标准输入
    • 输出文件,默认标准输出
  • 选项
    • -c/--count:统计重复行数;
    • -d/--repreated:仅显示重复出现的行列;
    • -u/--unique:仅显示出现一次的列;
    • -f或--skip-fields=:忽略比较指定的栏位;
    • -s或--skip-chars=:忽略比较指定的字符;
    • -w或--check-chars=:指定要比较的字符。

head

head:默认显示文件开头10行。

  • 语法

head (选项) (参数)

  • 参数

    • 文件列表
  • 选项
    • -n:指定显示行数;
    • -c:指定显示字符数;

记一次Linux下数据统计的更多相关文章

  1. linux下数据同步、回写机制分析

    一.前言在linux2.6.32之前,linux下数据同步是基于pdflush线程机制来实现的,在linux2.6.32以上的版本,内核彻底删掉了pdflush机制,改为了基于per-bdi线程来实现 ...

  2. 记一次Linux下JavaWeb环境的搭建

    今天重装了腾讯云VPS的系统,那么几乎所有运行环境都要重新部署了.过程不难懂,但是也比较繁琐,这次就写下来,方便他人也方便自己日后参考参考. 我采用的是JDK+Tomcat的形式来进行JavaWeb初 ...

  3. Linux高效数据统计命令wc

    wc(world count)是一个统计文件字词,字节,行数的命令,它可以帮我们非常方便的统计以上信息. 主要参数 常见参数如下: -c 统计字节数. -l 统计行数. -m 统计字符数.这个标志不能 ...

  4. linux下shell统计文件目录下所有代码行数

    功能,统计某一目录下所有文件代码行数: 例如统计某一目录下所有.c结尾的文件代码行数:find . -name "*.c"|xargs cat|grep -v ^$|wc -l ^ ...

  5. (转)Linux下数据段的区别(数据段、代码段、堆栈段、BSS段)

    进程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等.不过进程对这些内存的管理方式因内存用途 不一而不尽相同,有些内存是事先静态分配和统一回收的, ...

  6. 记一次Linux下给硬盘分区格式化操作

    今天找到一张旧TF卡,2G的,正好拿来练习下建立分区 插上orangepi后,fdisk -l看看,可以看到多了一个新的存储设备 /dev/mmcblk1 用fdisk打开它: fdisk /dev/ ...

  7. 记一次linux下安装redis, 设置redis服务, 及添加环境变量

    一. redis的安装 cd /opt                                                                                # ...

  8. 记一次linux下安装ftp的愉快体验

    三三两两,试了几次就出来了,挺开心的 linux安装vsftpd,请自行百度 贴出部分配置点 阿里云服务器,开发相关端口以及部分区域端口访问 /etc/pad.d/vsftpd添加部分注释 #%PAM ...

  9. Linux 下线程的理解

    2017-04-03 最近深入研究了下Linux线程的问题,发现自己之前一直有些许误解,特记之…… 关于Linux下的线程,各种介绍Linux的书籍都没有深入去解释的,或许真的如书上所述,Linux本 ...

随机推荐

  1. Python Mock的入门学习

    一.Mock是什么 Mock这个词在英语中有模拟的这个意思,因此我们可以猜测出这个库的主要功能是模拟一些东西.准确的说,Mock是Python中一个用于支持单元测试的库,它的主要功能是使用mock对象 ...

  2. 站在巨人肩上的.NET Core 2.1

    .NET Core 1.0自发布两年以来,得到了开发者群体相当高地认可. 下图来自Stack overflow survey 2018的统计: .NET Core已经成为前五的主流框架工具,现今借鉴了 ...

  3. url最后的“/”是什么作用

    多了个尾巴 有时候,当你尝试在地址栏输入https://123/demo的时候,会发现浏览器会重定向到https://123/demo/这个地址,也就是多了个/,发生了重定向.有图为证: 上面这个图是 ...

  4. JavaScript -- Window-框架

    -----025-Window-框架.html----- <!DOCTYPE html> <html> <head> <meta http-equiv=&qu ...

  5. 解决 Error: ENOSPC: System limit for number of file watchers reached

    manjaro 18.0 kde版本 运行 yarn test报错 Error: ENOSPC: System limit for number of file watchers reached 解决 ...

  6. MVC源码分析 - ModelBinder绑定 / 自定义数据绑定

    这几天老感觉不对, 总觉得少点什么, 今天才发现, 前面 3 里面, 在获取Action参数信息的时候,  少解析了. 里面还有一个比较重要的东西. 今天看也是一样的. 在 InvokeAction( ...

  7. CAS多点登录

    转自:http://www.blogjava.net/alwayscy/archive/2012/12/01/392322.html 场景 想要用到的场景:用户访问WEB服务,WEB访问非WEB服务1 ...

  8. 基于Ip的刷投票排名及刷百度推广的自动化实现

    所有基于Ip的刷投票排名,只要不涉及用户登录情况,都可以在手机端自动化实现,因为电信运营商的ip地址段是无限的,理论上,飞行模式开关一次,所分配ip地址是变化的,这就有了大量的ip可用 在手机端写个a ...

  9. UVA 11134 Fabled Rooks(贪心的妙用+memset误用警示)

    题目链接: https://cn.vjudge.net/problem/UVA-11134 /* 问题 输入棋盘的规模和车的数量n(1=<n<=5000),接着输入n辆车的所能在的矩阵的范 ...

  10. 4.socket(-)之控制台

    一Socket介绍: 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 建立网络通信连接至少要一对端口号(socket).socket本质是编程接口(API) ...