一个小脚本

本文介绍了一个使用bash脚本解决的数据处理任务,即在特定条件下计算数据集中属性值的平均数。通过计算特性值的中位数作为阈值,脚本实现了对满足条件的数据进行筛选和计算,展示了bash脚本在数据处理场景中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

闲的无聊写个脚本处理数据 O(∩_∩)O~

输入是这样的:
1,10,21
2,12,19
3,9,25

第一列是编号从1到n,第二列是特性值,第三列是属性值。
要做的是:统计属性值的平均数,仅当特性值大于某个阈值;简单起见,这个阈值取特性值的中位数。

思路:先计算行数,再找出特性值的中位数,然后计算平均值。

#!/bin/bash

# csv file name
file=$1

# get line number
line=$(wc -l $file | grep -Po '\d+')

# get median number among $2
th=`awk -F ',' '{print $2}' $file | sort -nr | sed -n $(($line/2+1))'q;'$(($line/2))'p'`

# calculate average $3 while $2 above threshold
awk -F ',' 'BEGIN {sum=0;num=0} {if($2>threshold){sum+=$3;num++}} END{print sum/num}' -v threshold=$th $file

非常简单吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值