美文网首页
awk 统计常用

awk 统计常用

作者: leobupt | 来源:发表于2017-10-26 11:38 被阅读0次

1. 目的

主要以实例方式讲解, awk统计

  • file1
级别,地区,企业级别,企业数量
1,北京,A,1
1,上海,B,2
0,广东,C,3
0,河北,D,4
2,南京,E,5
0,河北,F,6
1,北京,G,7
1,上海,H,8
2,南京,I,9
0,云南,J,10
2,石家庄,A,10
3,秦皇岛,B,20
2,石家庄,C,30
3,邢台,D,40
0,广东,E,50
1,北京,F,60
2,石家庄,G,70
3,邯郸,H,80
3,新乡,I,90
0,广东,J,100
0,广东,J,1000
  • file2
地区,人口
北京,1000
上海,800
广东,600
河北,2000
南京,400
云南,1300
石家庄,200
秦皇岛,100
邢台,100
邯郸,120
新乡,150
九江,50
雄县,10
廊坊,20

2. 单表:单文件统计

实例模板, 书写风格, 如下:
# SQL实现: (如果有等效的SQL)
SQL代码
# awk实现
awk代码
# AWK结果:
结果展示
  • 地区数, 地区人口总数 : (file2第二列求和)
# SQL: 
select count(1), sum(`人口`)  from file2 

# AWK:
awk -F,   '{a+=1;s+=$2} END{print a,s}'   file2
# 结果: 
15 6850
  • 不同城市级别的企业数量, 倒序排列
# SQL: 
select `城市级别`, sum(`企业数量`) as `total` from file1 group by `城市级别` order by total desc

# AWK:
awk -F,   '{a[$1]+=$4} END {for (i in a) print i, a[i]}'    file1 | sort -k2nr 
# 结果: 
0 1173
3 230
2 124
1 78
  • 按城市+企业级别分组, 求各组企业数量, 倒序Top5

# SQL: 
select `城市级别`, `企业级别`, sum(`企业数量`) as `total` 
from file1 group by `城市级别`,`企业级别` 
order by total desc

# AWK:
awk -F, '{a[$1" "$3]+=$4} END {for (i in a) print i, a[i]}' file1 | sort -k3nr | head -5
# 结果: 
0,J 1110
3,I 90
3,H 80
2,G 70
1,F 60
  • 筛选出企业级别ABCD的企业数量,并分组求和, 并倒序
# SQL:
select `企业级别`, sum(`企业数量`) as total from file1
where `企业级别` in ('A','B','C','D')
group by `企业级别`  order by total desc

# AWK:
awk -F,  'BEGIN{a["A"]=0;a["B"]=0;a["C"]=0;a["D"]=0;}{if ($3 in a) {a[$3]+=$4;}} END {for(i in a) print i,a[i]}' file1  | sort -k2rn 
# 结果:
D 44
C 33
B 22
A 11
  • 待续...
  • 筛选
# SQL:

# AWK:
# 结果:
  • 筛选
# SQL:

# AWK:
# 结果:
  • 筛选
# SQL:

# AWK:
# 结果:

3. 多表关联

相关文章

  • awk 统计常用

    1. 目的 主要以实例方式讲解, awk统计 file1 file2 2. 单表:单文件统计 实例模板, 书写风格...

  • awk的使用方法

    awk 用法: 常用格式: awk [options 参数] 'commands' ...

  • Linux

    linux awk命令详解、linux awk命令Linux常用操作指令Linux netstat命令详解 awk...

  • Shell大杂烩

    AWK 常用语法:awk -F 'separator' '{pattern + action}' filenam...

  • Linux常用命令总结

    Linux常用命令指南 @Date 2017.05.23 tail awk awk ' pattern {acti...

  • linux 统计学 命令整理

    本节内容: awk统计命令 1、求和 代码示例: catdata|awk '{sum+=$1} END {prin...

  • awk 命令使用方法

    1. awk 擅长功能 awk 擅长对列进行操作/进行数据信息的统计(数组) awk 基本使用(高级使用-shel...

  • Linux常用命令

    awk 文本分析 举个例子 按corpid统计访问pv:cat access.log | awk -F ',' '...

  • 日志分析

    命令grep、awk、sort、uniq常用示例

  • awk日志统计

    Nginx Access Log日志统计分析常用命令 IP相关统计 1、统计IP访问量 2、查看某一时间段的IP访...

网友评论

      本文标题:awk 统计常用

      本文链接:https://www.haomeiwen.com/subject/zuhtpxtx.html