Shell - 一行脚本统计分组 PV、UV

目录

一.引言

二.数据样式

三.统计分组 PV

四.统计分组 UV


一.引言

本地文件计算用户 PV、UV 时,每次需要使用 py 脚本进行分析处理,十分的麻烦,下面用 shell 命令轻松实现分组 PV、UV 统计。

二.数据样式

数据共三列,第一列为时间,第二列为用户手机品牌,第三列为用户姓名,分隔符为 '\t',下面分别使用 shell 脚本统计不同厂商用户的 UV 与 PV。

2022-09-19 oppo	A
2022-09-19 oppo	A
2022-09-19 huawei	C
2022-09-19 huawei	D
2022-09-19 xiaomi	E
2022-09-19 xiaomi	E
2022-09-19 iphone	G
2022-09-19 iphone	H
2022-09-19 vivo	I
2022-09-19 vivo	J
2022-09-19 honor	K
2022-09-19 honor	K
2022-09-19 oneplus	M
2022-09-19 oneplus	N

三.统计分组 PV

cat deviceLog | awk -F '\t' '{pv[$2]+=1} END {for(i in pv){print i":"pv[i]}};'

Shell - 一行脚本统计分组 PV、UV_第1张图片

使用 awk 对数据进行分列,针对每个 device 在 pv 数组中进行累加,最后 END 调用 for 循环输出 pv 中累积的分组数值。

四.统计分组 UV

cat deviceLog | awk -F '\t' '{print $2}'|sort|uniq|awk '{uv[$1]+=1} END {for(i in uv){print i":"uv[i]}};'

Shell - 一行脚本统计分组 PV、UV_第2张图片

和统计 pv 思路类似,通过 uv 数组进行分组数据的统计,区别是增加了 sort + uniq 实现了 device 的去重,随后再累加即可得到 uv。

你可能感兴趣的