需要对数据进行分组,每组有6个值,然后需要在每个组中找到最大值。
数据:
0.0759313
0.0761037
0.0740772
0.0736791
0.0719802
0.0715406
0.0828038
0.0826728
0.0802384
0.0798476
0.0785342
0.0777939
0.0738756
0.0733486
0.0709046
0.0707067
0
0
使用了这个awk语句,但没有得到任何结果。
awk '{for(x=i+1;(x<=(i+5))&&(x<=NF);x++){a[++y]=$x;if(x==(i+5)){c=asort(a);b[z++]=a[c];i=i+6;y=0}}}END{for(j in b) print b[j]}'
答案 0 :(得分:0)
我会选择这样的事情:
awk 'NR % 6 == 1 || $0 > max { max = $0 } NR % 6 == 0 { print max }' file
始终将max
设置为每组六个中的第一个值,或者如果该值大于当前最大值。在每个组的末尾,打印该值。
您可能还想要包含一些额外的逻辑来处理打印最后几个数字的最大值,以防行数不能被6整除:
END { if (NR % 6 != 0) print max }