2014-02-17 64 views
0

我剛學awk的,這裏是我的問題:的awk'嘗試使用標'SUM」作爲數組'

test.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] 
} 

當我運行:

awk -f test.awk hello 

我得到這個錯誤:

awk: cmd. line:2: (FILENAME=hello FNR=1) fatal: attempt to use scalar `SUM' as array

請告訴我發生了什麼事,我該如何糾正它。

+2

它更好,你給我們你的數據,你喜歡什麼,以擺脫它。 – Jotne

+0

刪除無用的'BEGIN'部分並更改COUNT = COUNT + 1' - > COUNT ++'和SUM [NR] = SUM [NR] + $ COUNT' - > SUM [NR] + = $ COUNT'。另外,不要使用全大寫變量名作爲內置變量的變量名,並且要弄清楚END節中的循環中需要包含「N」。 –

回答

3
SUM=0 

這告訴awk SUM是一個標量,在這個例子中是數字零。

SUM[NR]=... 

這告訴awk你想用SUM作爲數組。但你已經告訴它SUM0,你不能使用0[NR]

+0

現在Code很好運行,非常感謝。 – LeonSaber