AWK-アレイ

AWKには連想配列があり、その最も優れた点の1つは、インデックスが連続した数値のセットである必要がないことです。文字列または数値のいずれかを配列インデックスとして使用できます。また、事前に配列のサイズを宣言する必要はありません。配列は実行時に拡大/縮小できます。

その構文は次のとおりです-

構文

array_name[index] = value

どこ array_name 配列の名前です、 index は配列インデックスであり、 value 配列の要素に割り当てる任意の値です。

アレイの作成

配列についてより多くの洞察を得るために、配列の要素を作成してアクセスしましょう。

[jerry]$ awk 'BEGIN {
   fruits["mango"] = "yellow";
   fruits["orange"] = "orange"
   print fruits["orange"] "\n" fruits["mango"]
}'

このコードを実行すると、次の結果が得られます-

出力

orange
yellow

上記の例では、配列を次のように宣言します。 fruitsそのインデックスは果物の名前であり、値は果物の色です。配列要素にアクセスするには、array_name[index] フォーマット。

配列要素の削除

挿入には代入演算子を使用しました。同様に、delete配列から要素を削除するステートメント。deleteステートメントの構文は次のとおりです-

構文

delete array_name[index]

次の例では、要素を削除します orange。したがって、コマンドは出力を表示しません。

[jerry]$ awk 'BEGIN {
   fruits["mango"] = "yellow";
   fruits["orange"] = "orange";
   delete fruits["orange"];
   print fruits["orange"]
}'

多次元配列

AWKは1次元配列のみをサポートします。ただし、1次元配列自体を使用して、多次元配列を簡単にシミュレートできます。

たとえば、以下に示すのは3x3の2次元配列です。

100   200   300
400   500   600
700   800   900

上記の例では、array [0] [0]は100を格納し、array [0] [1]は200を格納します。配列の場所[0] [0]に100を格納するには、次の構文を使用できます。

構文

array["0,0"] = 100

あげたけど 0,0インデックスとして、これらは2つのインデックスではありません。実際には、それは文字列を持つ1つのインデックスにすぎません0,0

次の例は、2次元配列をシミュレートします-

[jerry]$ awk 'BEGIN {
   array["0,0"] = 100;
   array["0,1"] = 200;
   array["0,2"] = 300;
   array["1,0"] = 400;
   array["1,1"] = 500;
   array["1,2"] = 600;

   # print array elements
   print "array[0,0] = " array["0,0"];
   print "array[0,1] = " array["0,1"];
   print "array[0,2] = " array["0,2"];
   print "array[1,0] = " array["1,0"];
   print "array[1,1] = " array["1,1"];
   print "array[1,2] = " array["1,2"];
}'

このコードを実行すると、次の結果が得られます-

出力

array[0,0] = 100
array[0,1] = 200
array[0,2] = 300
array[1,0] = 400
array[1,1] = 500
array[1,2] = 600

要素/インデックスの並べ替えなど、配列に対してさまざまな操作を実行することもできます。その目的のために、あなたは使用することができますassort そして asorti 関数