2 次元配列を簡単に作成できます。あなたができないこと、AFAIKは、1回の操作で初期化することです。dmckeeがコメントで示唆しているように、配列を初期化できない理由の 1 つは、添え字の型に制限がないため、純粋な数値である必要がないことです。以下のスクリプトのように、複数の割り当てを行うことができます。下付き文字は、変数 SUBSEP で指定された不明瞭な文字で正式に区切られます。デフォルト値は 034 (U+001C、FILE SEPARATOR) です。明らかに、インデックスの 1 つにこの文字が含まれていると、混乱が生じます (しかし、文字列でその文字を最後に使用したのはいつですか?)。
BEGIN {
Colours[1,1] = "Red"
Colours[1,2] = "Green"
Colours[1,3] = "Blue"
Colours[2,1] = "Yellow"
Colours[2,2] = "Cyan"
Colours[2,3] = "Purple"
}
END {
for (i = 1; i <= 2; i++)
for (j = 1; j <= 3; j++)
printf "Colours[%d,%d] = %s\n", i, j, Colours[i,j];
}
実行例:
$ awk -f so14063783.awk /dev/null
Colours[1,1] = Red
Colours[1,2] = Green
Colours[1,3] = Blue
Colours[2,1] = Yellow
Colours[2,2] = Cyan
Colours[2,3] = Purple
$