我刚刚学习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”作为数组
请告诉我发生了什么以及我应该如何纠正它。
SUM=0
Run Code Online (Sandbox Code Playgroud)
这告诉 awk 这SUM
是一个标量,在这种情况下是数字零。
SUM[NR]=...
Run Code Online (Sandbox Code Playgroud)
这告诉 awk 您想SUM
用作数组。但是,你已经告诉它SUM
是0
,你不能使用0[NR]
。