我试图从每秒钟到每分钟(以当天所有数值的平均值为单位)汇总数据。我的数据的时间戳的形式为:使用Awk将时间戳数据从每秒钟转换为每分钟的更好方法
date time[h:m:s-03:00],X,value
2016-05-29 15:50:33-03:00,X,561
2016-05-29 15:50:34-03:00,X,565
....
我已经破解我的方式与下面的代码的答案,但我想找到一个更好的,更清洁的方式做到这一点:
awk -F: 'BEGIN{
foo_total=0;
foo=0; }
{
split($4,ar,",");
foo=ar[3];
split($3,a,"-");
if(a[1]~"00"){
first_foo=ar[3]}
if(a[1]!~"00"){
foo_total+=ar[3]}
foo_sum=(first_foo + foo_total);
foo_final=foo_sum/60
if(a[1]~"59") {printf $1":"$2","foo_final"\n"; foo_total=0; first_foo=0;} }' MyFile.csv
非常感谢您的帮助!
请指定样本输入和预期输出以及相同的说明。 – piyushj
另一方面,你不应该在没有格式字符串的情况下使用'printf'(用任何编程语言,awk,c,bash等)。 'printf stringvariable'可以正确写成'printf'%s“,stringvariable' – anishsane