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

  • 相关阅读:
    winform中主窗体可以实现拖动代码
    winform中自定义窗体启动位置
    winform中启动登陆窗体,登陆成功后登陆窗体自动销毁
    winform中隐藏窗体边框
    作业2
    画图
    作业
    day01
    java.String中的方法
    网站的内链反链黑链
  • 原文地址:https://www.cnblogs.com/halberd-lee/p/11753775.html
Copyright © 2011-2022 走看看