我有跨多个目录的多个文件(记录)。根据创建日期,每个记录都位于自己的路径中。
2016年11月12日的记录是
~/records/2016/11/12/record.在每一项记录中,最后一行都有一个数字,我正在努力计算每年的汇总统计数字。
如何编写包含两个用户输入的脚本:
哪里的统计可以是平均的,最大的,最小的,还是全部(平均,最大和最小)?
发布于 2019-01-29 13:10:14
您可以使用year输入来定义find命令的根目录,该命令搜索所有record文件并为每个文件调用tail -1。
find ~/records/"$YEAR" -type f -name record -exec tail -1 {} \;这足以打印指定年份的所有值。
为了计算最小/最大/平均管道,将输出输入到awk进行计算。
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";
}
}'您可以组合和扩展这些片段以获得完整的脚本。
https://unix.stackexchange.com/questions/497443
复制相似问题