首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >shell脚本中的汇总统计信息

问shell脚本中的汇总统计信息
EN

Unix & Linux用户
提问于 2019-01-29 12:40:27
回答 1查看 1.1K关注 0票数 0

我有跨多个目录的多个文件(记录)。根据创建日期,每个记录都位于自己的路径中。

2016年11月12日的记录是

代码语言:javascript
复制
~/records/2016/11/12/record.

在每一项记录中,最后一行都有一个数字,我正在努力计算每年的汇总统计数字。

如何编写包含两个用户输入的脚本:

  • 年
  • 统计量

哪里的统计可以是平均的,最大的,最小的,还是全部(平均,最大和最小)?

EN

回答 1

Unix & Linux用户

发布于 2019-01-29 13:10:14

您可以使用year输入来定义find命令的根目录,该命令搜索所有record文件并为每个文件调用tail -1。

代码语言:javascript
复制
find ~/records/"$YEAR" -type f -name record -exec tail -1 {} \;

这足以打印指定年份的所有值。

为了计算最小/最大/平均管道,将输出输入到awk进行计算。

代码语言:javascript
复制
awk -v stat="$STATISTICS" 'BEGIN { count=0; sum=0; }
  { if(!count) { min=$0; max=$0; }
    count++;
    sum += $0;
    if($0 > max) max = $0;
    if($0 < min) min = $0;
  }
  END {
    if(count) {
      # TODO: use variable "stat" to select only one result to print
      print min;
      print sum/count; # average
      print max;
    } else {
      print "no data";
    }
  }'

您可以组合和扩展这些片段以获得完整的脚本。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/497443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档