序言
awk在linux中作为一个基础工具,凭借着出色的能力在数据统计分析中占据了一席之地,用过的都觉得其不愧为linux三剑客最强。awk处理文本内容是以行为单位处理的,所以一般处理数据都是按行去分析的。使用awk可以命令、脚本方式执行。本文重点在于介绍应用案例,案例中使用到的都是linux自带的基础工具。
数据文本
一下是案例使用的数据文本 data.txt,我们定义符号 | 分割的数据依次代表:用户id、时间、渠道、消费金额。
13846|1687008701268|yyb.ebay.201000|188.0
18613|1687008786538|vivo.ebay.201030|688.0
17050|1687008746798|ios.ebay.201010|9.98
13511|1687008269224|ios.ebay.201010|88.8
12402|1687008622715|ios.ebay.201010|688.0
14754|1687008181553|ios.ebay.201010|368.0
18177|1687008469470|oppo.ebay.201040|9.98
13453|1687008088868|vivo.ebay.201030|188.0
11548|1687008054814|oppo.ebay.201040|88.8
15125|1687008212323|ios.ebay.201010|188.0
15838|1687008292587|huawei.ebay.201020|88.8
19536|1687008677144|huawei.ebay.201020|88.8
10813|1687008643930|oppo.ebay.201040|688.0
17536|1687008456116|vivo.ebay.201030|88.8
12672|1687008501284|oppo.ebay.201040|188.0
17488|1687008472683|huawei.ebay.201020|9.98
15166|1687008094764|huawei.ebay.201020|9.98
14739|1687008790329|ios.ebay.201010|688.0
19542|1687008172983|oppo.ebay.201040|368.0
15404|1687008867104|yyb.ebay.201000|368.0
案例
统计
统计渠道为 huawei.ebay.201020 的消费总金额
cat data.txt | awk -F| ‘BEGIN{sum=0}{if($3==“huawei.ebay.201020”)sum+=$4}END{print sum}’

根据数据对比结果,是一致的。
命令解释:通过cat读取data.txt文件,将结果作为awk的输入用于分析,-F 指定分割符为|,需要转义 | ,
排序
以金额为基准从大到小排序
cat data.txt | awk -F| ‘{print $4}’ | sort

分类
按照渠道分类,看有几个渠道消费
cat data.txt | awk -F| ‘{print $3}’ | sort | uniq

本文介绍了awk在Linux中的应用,通过案例展示了如何使用awk统计特定渠道的消费总金额、对消费金额进行排序以及按渠道分类。案例数据包含用户ID、时间戳、渠道和消费金额,awk通过管道连接其他基础工具如sort和uniq实现数据处理。

824

被折叠的 条评论
为什么被折叠?



