AWK - Tableaux

AWK a des tableaux associatifs et l'une des meilleures choses à ce sujet est que les index n'ont pas besoin d'être un ensemble continu de nombres; vous pouvez utiliser une chaîne ou un nombre comme index de tableau. De plus, il n'est pas nécessaire de déclarer la taille d'un tableau à l'avance - les tableaux peuvent s'étendre / réduire au moment de l'exécution.

Sa syntaxe est la suivante -

Syntaxe

array_name[index] = value

array_name est le nom du tableau, index est l'index du tableau, et value est toute valeur affectant l'élément du tableau.

Création d'un tableau

Pour obtenir plus d'informations sur un tableau, créons et accédons aux éléments d'un tableau.

Exemple

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

En exécutant ce code, vous obtenez le résultat suivant -

Production

orange
yellow

Dans l'exemple ci-dessus, nous déclarons le tableau comme fruitsdont l'index est le nom du fruit et la valeur est la couleur du fruit. Pour accéder aux éléments du tableau, nous utilisonsarray_name[index] format.

Suppression d'éléments de tableau

Pour l'insertion, nous avons utilisé l'opérateur d'affectation. De même, nous pouvons utiliserdeleteinstruction pour supprimer un élément du tableau. La syntaxe de l'instruction de suppression est la suivante -

Syntaxe

delete array_name[index]

L'exemple suivant supprime l'élément orange. Par conséquent, la commande n'affiche aucune sortie.

Exemple

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

Tableaux multidimensionnels

AWK prend uniquement en charge les tableaux à une dimension. Mais vous pouvez facilement simuler un tableau multidimensionnel en utilisant le tableau unidimensionnel lui-même.

Par exemple, ci-dessous est un tableau bidimensionnel 3x3 -

100   200   300
400   500   600
700   800   900

Dans l'exemple ci-dessus, le tableau [0] [0] stocke 100, le tableau [0] [1] en stocke 200, et ainsi de suite. Pour stocker 100 à l'emplacement du tableau [0] [0], nous pouvons utiliser la syntaxe suivante -

Syntaxe

array["0,0"] = 100

Bien que nous ayons donné 0,0comme index, ce ne sont pas deux index. En réalité, c'est juste un index avec la chaîne0,0.

L'exemple suivant simule un tableau 2D -

Exemple

[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"];
}'

En exécutant ce code, vous obtenez le résultat suivant -

Production

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

Vous pouvez également effectuer diverses opérations sur un tableau, telles que le tri de ses éléments / index. Pour cela, vous pouvez utiliserassort et asorti les fonctions