为什么变量未在此BEGIN中正确初始化?

时间:2015-11-17 12:50:24

标签: awk

在这个gawk中,似乎在BEGIN语句中忽略了ave = $ 4。看来ave在第一行的正文中的值为0:

cat trades.txt | gawk 'BEGIN{pos=0;ave=$4} {pos+=$3;ave=(0.1*$4)+(0.9*ave)} {print $2,pos,$4,ave}' > onPositions.txt

1 个答案:

答案 0 :(得分:5)

在读取任何数据之前运行BEGIN块。如果你想在阅读第一条记录后一次做一些特别的事情:

NR == 1 { ... init code here ... }