私はUNIXプログラミング環境を読んでいます。セクション4.4のawkについては、次のサンプルコードがあります。
    awk '
    FILENAME != prevfile {   # new file
        NR = 1               # reset line number
        prevfile = FILENAME
    }
    NF > 0 {
        if ($1 == lastword)
            printf "double %s, file %s, line %d\n",$1,FILENAME,NR
        for (i = 2; i <= NF; i++)
            if ($i == $(i-1))
                printf "double %s, file %s, line %d\n",$i,FILENAME,NR
        if (NF > 0)
            lastword = $NF
    }' $*
パターンとしてすでにNF>0を持っているブロック内でNF>0がテストされるのはなぜですか?