zoukankan      html  css  js  c++  java
  • 记一次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个字符。

    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:默认显示文件开头10行。

    • 语法

    head (选项) (参数)

    • 参数
      • 文件列表
    • 选项
      • -n<数字>:指定显示行数;
      • -c<数字>:指定显示字符数;
  • 相关阅读:
    【笔记】黄如花.信息检索.学习心得
    【心得】Lattice和Xilinx工具关键特性对比(Diamond、ISE)
    【导航】FPGA相关
    【笔记】黄如花.信息检索.前4章心得(新增大牛汇总的公开课资源)
    python正则表达式练习题
    python正则表达式(1)--特殊字符
    【转】什么时候 i = i + 1 并不等于 i += 1?
    Linux查看文件指定行数内容
    python mysqldb批量执行语句executemany
    linux命令行常用快捷键
  • 原文地址:https://www.cnblogs.com/amyzhu/p/8344143.html
Copyright © 2011-2022 走看看