Recherche…


Bases du tableau

Créer un nouveau tableau est un peu déroutant, car il n’ya pas de véritable identifiant pour un tableau dans awk. Ainsi, un tableau ne peut pas vraiment être initialisé avec notre code AWK.

Un tableau dans awk est associatif, ce qui signifie que toute chaîne ou nombre peut être une clé. Cela signifie que le tableau ressemble plus à un dictionnaire de paires clé-valeur, à une carte, etc. Sur une autre note, les tableaux n'ont pas de taille maximale.

Créer un tableau dans AWK est très simple, car vous prenez un nom de variable, une clé correcte et l'assignez à une variable. Cela signifie que lorsque le code suivant est exécuté, nous avons déjà créé un tableau appelé myArray :

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

Nous ne sommes pas obligés de créer des tableaux au début seulement. Disons que nous avons le flux d'entrée suivant:

A b c
D e f
G h i

Et exécutez le code suivant avec ceci:

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

Lorsqu'un tableau est rempli de paires de valeurs de clé, il est possible de récupérer la valeur avec la clé uniquement. Cela signifie que si nous utilisons la clé "A" dans myOtherArray nous obtenons "bc" .

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

Nous avons également la possibilité de parcourir chaque clé pour obtenir chaque valeur. Faire une boucle à travers chaque clé d'un tableau est une chose simple à faire, mais elle n'a pas été triée. La boucle suivante est comme une boucle for-each, qui récupère la clé:

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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow