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
Où 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