サーチ…


配列の基本

awkの配列には実際の識別子がないので、新しい配列を作成するのはやや混乱します。したがって、AWKコードで配列を実際に初期化することはできません。

awkの配列は連想的です。つまり、任意の文字列または数字をキーにすることができます。つまり、配列はキーと値のペアの辞書、マップなどに似ています。別のメモでは、配列の最大サイズはありません。

AWKでの配列の作成は、変数名、適切なキーを引数として変数に代入するのがとても簡単です。つまり、次のコードが実行されると、 myArrayという配列がすでに作成されていmyArray

BEGIN {
    myArray["key"] = "value"
}

私たちは、始めに配列を作ることに縛られていません。次の入力ストリームがあるとします。

A b c
D e f
G h i

これで次のコードを実行します:

{
    myOtherArray[$1] = $2 "-" $3
}
# The array will look like this:
# myOtherArray["A"] = "b-c"
# myOtherArray["D"] = "e-f"
# myOtherArray["G"] = "h-i"

配列がキーの値のペアでいっぱいになると、そのキーで値を取り出すことができます。これは、 myOtherArrayキー"A"を使用すると、 "bc"を取得することを意味します。

END {
    print(myOtherArray["A"])
}

また、各キーをループして各値を取得するオプションもあります。配列の各キーをループするのは簡単なことですが、それは倒れてしまいます。それはソートされていません。次のループはfor-eachループのようなもので、キーを取得します。

END {
    for (key in myOtherArray) {
        print "myOtherArray[\"" key "\"] = " myOtherArray[key] 
    }
}
# Outputs (literal strings):
myOtherArray["A"] = "b-c"
myOtherArray["D"] = "e-f"
myOtherArray["G"] = "h-i"


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow