Est-il possible d'utiliser une variable comme index pour un tableau multidimensionnel vrai? J'ai un script gawk 4.1.1 qui passe par les fichiers de configuration Cisco, et je veux créer un tableau qui ressemble à:gawk 4 - Utiliser la variable comme un index de tableau
myarray [sitecode] [nom_commutateur]
Où sitecode et nom_commutateur sont tirés de la FILENAME en cours de traitement, puis des index supplémentaires au-delà de cela pour calculer diverses choses sur une base par commutateur. Pour ces deux index ci-dessus, je veux définir à la fois l'index et la valeur de la même variable. Donc, finalement, je pourrais avoir un tableau qui ressemble à:
myarray[nyc01][switch01][Vlan100][192.168.100.1]
myarray[nyc01][switch01][Vlan101][192.168.101.1]
myarray[nyc01][switch02][Vlan200][192.168.200.1]
Le code ci-dessous illustre ce que je suis en train de faire:
#!/bin/bash
awk '{
var1="variable1"
var2="variable2"
array[var1]=var1
array[var1][var2]=var2
print array[var1][var2]
}'
Je reçois cette erreur:
awk: cmd. line:6: (FILENAME=- FNR=1) fatal: attempt to use scalar `array["variable1"]' as an array
Je sorte de comprendre pourquoi ça se passe. J'ai déclaré var1 et var2 pour être des variables scalaires. Mais y a-t-il un travail pour ce que j'essaie de faire?
array [var1] = var1: la main gauche de l'assignation est une ligne du tableau (ou un plan si vous avez un tableau 3D), le rhs est une valeur unique. Essayez-vous d'assigner toute la dimension n-1 à la fois ??? – user1666959