0

私はこのawkスクリプトを持っています:

!/NaN/{
    nodes=$1;
    range=$2;
    size=$3;
    frame=$4;
    arrRate=$5;
    type=$6;
    pl=$7;

    count[nodes,range,size,frame,arrRate,type,pl]++;
    sumth[nodes,range,size,frame,arrRate,type,pl]+=$11;
    sumdel[nodes,range,size,frame,arrRate,type,pl]+=$13;
    sumdeliv[nodes,range,size,frame,arrRate,type,pl]+=$15;
    sumthf[nodes,range,size,frame,arrRate,type,pl]+=$17;
    sumdelf[nodes,range,size,frame,arrRate,type,pl]+=$19;
    sumdelivf[nodes,range,size,frame,arrRate,type,pl]+=$21;
 }
 END{
    for (i in count) {
       split(i,sep,SUBSEP);
       for (x in sep) {
           printf "%s ", sep[x];
       }
       print sumth[i] / count[i],
             sumdel[i] / count[i],
             sumdeliv[i] / count[i],
             sumthf[i] / count[i],
             sumdelf[i] / count[i],
             sumdelivf[i] / count[i],
             count[i]
    }
 }

実行すると、mawk 1.3.3次のような出力が得られます。

100 10 100 10 0.0001778279 DRAND 0.0 ...

しかし、 onGNU Awk 3.1.5で実行すると、次のようになります。

10 0.0001778279 DRAND 0.7 100 10 100 ...

または、最初の列が異なる順序で印刷されます。

awkawk のバージョンに関係なく、一貫した出力が得られるように、配列のインデックスを反復処理する信頼できる方法はありますか?

4

1 に答える 1