zoukankan      html  css  js  c++  java
  • awk 分组求和

    awk 分组求和

    分组求和
    awk  '{s[substr($2,1,6)] += $1} END{for(i in s) {print i, s[i]/(1024*1024*1024)} }' file_to_read.txt |sort -n
    

    这里面用到了awk的知识和字典的知识。AWK 中需要了解的就是$N 代表所读取内容的第N 列。

    可能有人对字典不太了解. s={'name':'halberd'} ,这就是一个字典,是Key-value的组合。

    在上面的字典示例中,key 是 'name',value 是 'halberd'。s[name] 的值 就是 'halberd'。

    返回上面的AWK示例, s[substr($2,1,6)] += $1 代表把文件 file_to_read.txt 每行中第二列的前6个字符作为 字典 s 的key 。

    当substr($2,1,6) 的值第一次出现时,s[substr($2,1,6)] = $1。

    当substr($2,1,6) 的值重复出现时时, s[substr($2,1,6)] += $1 代表,把$1 的值 加到 原来s[substr($2,1,6)]上,也就是s[substr($2,1,6)] = s[substr($2,1,6)] + $1。通过字典的管理方式,进行数据的求和。

    file_to_read.txt 部分内容如下:

    .........
    1125017 20180820174000
    277 20180820174000
    1491471 20180820175000
    663 20180820175000
    1429371 20180920170000
    3716506 20181020170000
    21055029 20181020170000
    2218546 20181020171000
    4650637 20181020174000
    23847465 20181020174000
    5341238 20181020175000
    24666314 20181020175000
    1621883 20181120170000
    20620952 20181120170000
    1756716 20181120171000
    21409188 20181120171000
    23085774 20190920174000
    1126625 20190920175000
    24564610 20190920175000
    583910 20191020170000
    22511935 20191020170000
    921893 20191020171000
    23906308 20191020171000
    629943 20191020172000
    25916302 20191020172000
    1063984 20191020173000
    25617169 20191020173000
    780478 20191020174000
    ................
    
    结果示例
    201808 2.50172
    201809 6.61726
    201810 66.528
    201811 84.6913
    201812 91.871
    201901 115.439
    201902 124.768
    201903 115.127
    201904 91.7492
    201905 93.8242
    201906 92.1708
    201907 83.1374
    201908 95.1076
    201909 85.789
    201910 80.9189
    

    Author: halberd.lee

    Created: 2019-10-28 Mon 17:30

    Validate

  • 相关阅读:
    FxCopCmd.exe 返回错误代码 65[翻译]
    关于VS2005安装项目制作的三个参考文章链接
    Windows服务开发的四个小经验
    ThreadLocal详解
    java修饰符详解
    聚合、组合、关联、继承之间的区别【转】
    centos单用户模式修改ROOT密码
    vim的配置
    spring注解详解
    centOS修改文本界面分辨率
  • 原文地址:https://www.cnblogs.com/halberd-lee/p/11753775.html
Copyright © 2011-2022 走看看