我要總結一列的值,但我要的平均重置每112行聲明awk中如果與環
什麼是錯的這個計劃
BEGIN{ sum=0;i=0}
{ sum=sum+$4
i=i+1
print i
if (i==112)
print "total " sum*8 " average " (sum/i)*8
sum=0
i=0
}
END{}
輸出始終爲1
我要總結一列的值,但我要的平均重置每112行聲明awk中如果與環
什麼是錯的這個計劃
BEGIN{ sum=0;i=0}
{ sum=sum+$4
i=i+1
print i
if (i==112)
print "total " sum*8 " average " (sum/i)*8
sum=0
i=0
}
END{}
輸出始終爲1
awk '{
sum+=$4
}
NR%112==0
{
a=sum*8;
print a,a/112;
sum=0;
}' your_file
我忘了括號
BEGIN{ sum=0;i=0}
{ sum=sum+$4
i=i+1
print i
if (i==112)
{print "total " sum*8 " average " (sum/i)*8
sum=0
i=0
}
}
END{}
謝謝
可以縮短一些:
awk '
{ sum+=$4
i+=1
print i
if (i==112)
{print "total " sum*8 " average " (sum/i)*8
sum=i=0
}
}' file
您也可以使用NR
代替i
awk '
{ sum+=$4
print NR%112
if (NR%112==0)
{print "total " sum*8 " average " (sum/112)*8
sum=0
}
}' file
我看到這個它打印的0
而不是行號112
但可能如果需要,可以修復。
難道你不需要用括號括住身體的if嗎? – ooga
是的,我忘了大括號,現在它可以工作 – user1683302