脚本实现sum/avg/max/min-求文本中每行数字

来源:互联网 发布:sql分页查询 limit 编辑:程序博客网 时间:2024/06/03 23:21

  我们假设data文件中每行是一个数字,我们来使用awk语言和perl语言对这些数字做求和、求平均、求最大、求最小等计算。

【awk】

求和

cat data|awk '{sum+=$1} END {print "Sum = ", sum}'

求平均值

cat data|awk '{sum+=$1} END {print "Average = ", sum/NR}'

求最大值

cat data|awk 'BEGIN {max = 0} {if ($1>max) max=$1 fi} END {print "Max=", max}'

求最小值(min的初始值设置一个超大数即可)

cat data | awk 'BEGIN {min = 1999999} {if ($1<min) min=$1 fi} END {print "Min=", min}'

【perl】

求和

cat data|perl -lane '{$sum+=$F[0]}END{print "Sum:".$sum}'

求平均值

cat data|perl -lane '{$sum+=$F[0]}END{print "Average=",$sum/$.}'

求最大值

perl -MList::Util=max -lane '{push @a,$F[0]}END{print max @a}' data

求最小值

perl -MList::Util=min -lane '{push @a,$F[0]}END{print min @a}' data

原创粉丝点击