序章
次の例を考えてみましょうsort.awk
:
BEGIN {
a[1]="5";
a[2]="3";
a[3]="6";
asort(a)
for (i=1; i<=3; i++) print a[i]
}
with で実行するとawk -f sort.awk
、並べ替えられた数値が配列a
に昇順で出力されます。
3
5
6
質問
対応する2 つの (そして一般的には のN
) 配列a
とb
a[1]="5"; b[1]="fifth"
a[2]="3"; b[2]="third"
a[3]="6"; b[3]="sixth"
そして、すべての配列を「同時に」ソートする問題..これを達成するには、配列をソートするa
だけでなく、ソートのインデックスを取得する必要があります。この単純なケースでは、インデックスは次のように与えられます。
ind[1]=2; ind[2]=1; ind[3]=3;
これらのインデックスがあれば、b
array の並べ替えの結果に基づいて、並べ替えられた配列も出力できa
ます。例えば:
for (i=1;i<=3;i++) print a[ind[i]], b[ind[i]]
ソートされた配列を出力します..
AWK を使用した連想配列のソートも参照してください。