awk ''尝试使用标量'SUM'作为数组''

Leo*_*ber 1 awk

我刚刚学习awk,这是我的问题:

测试.awk

BEGIN {
  SUM=0
  AVE=0
  COUNT=0
}

{
  for(COUNT+=3; COUNT<=22; COUNT=COUNT+1)
    SUM[NR]=SUM[NR]+$COUNT
}

END {
  for(COUNT=1; COUNT<=N; COUNT=COUNT+1)
    SUM[COUNT]
}
Run Code Online (Sandbox Code Playgroud)

当我运行时:

awk -f test.awk hello
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

awk:cmd。第 2 行:(FILENAME=hello FNR=1) 致命:尝试使用标量“SUM”作为数组

请告诉我发生了什么以及我应该如何纠正它。

Kev*_*vin 6

SUM=0
Run Code Online (Sandbox Code Playgroud)

这告诉 awk 这SUM是一个标量,在这种情况下是数字零。

SUM[NR]=...
Run Code Online (Sandbox Code Playgroud)

这告诉 awk 您想SUM用作数组。但是,你已经告诉它SUM0,你不能使用0[NR]