Awk peut utiliser des chaines de caractères comme indice de tableau. Au lieu d'initialiser un compteur, on peut indexer nos tableaux avec le nom de lpar.
$ awk -F',|;' ' BEGIN {i=0} /MO2PPC/ {2ドル;RAM[2ドル]=5ドル;CPU1[2ドル]=6ドル;CPU2[2ドル]=7ドル} ' /tmp/toto.txt
La boucle for permet, lorsqu'on l'utilise sur un tableau, de setter la variable de boucle avec l'indice du tableau (on aurait pu le faire d'ailleurs sur le tableau a indice numérique de l'exemple précédent). On va utiliser cette propriété en bouclant sur un des tableaux qu'on a initialisé, et utiliser la variable de boucle pour afficher les éléments des autres tableaux :
$ awk -F',|;' ' /MO2PPC/ {2ドル;RAM[2ドル]=5ドル;CPU1[2ドル]=6ドル;CPU2[2ドル]=7ドル} END { print "FILENAME/ " FILENAME; for (j in RAM) { print "LPARS: " j; print "RAM: " RAM[j]; print "CPU 1: " CPU1[j]; print "CPU2: " CPU2[j] } }' /tmp/toto.txt FILENAME/ /tmp/toto.txt
LPARS: miaibv246
RAM: 12
CPU 1: 0.5
CPU2: 1
LPARS: miaibv182
RAM: 5
CPU 1: 0.5
CPU2: 1
LPARS: mplaix0122
RAM: 175
CPU 1: 2.3
CPU2: 5
LPARS: mo2vio20a
RAM: 7
CPU 1: 1.0
CPU2: 2
LPARS: mo2vio20b
RAM: 7
CPU 1: 1.0
CPU2: 2
LPARS: miaibv95
RAM: 60
CPU 1: 0.6
CPU2: 4
LPARS: mplaix0306
RAM: 180
CPU 1: 0.5
CPU2: 3
LPARS: oncwasp4
RAM: 15
CPU 1: 0.6
CPU2: 2
LPARS: mplaix0087
RAM: 100
CPU 1: 0.4
CPU2: 4
LPARS: miaibv161
RAM: 60
CPU 1: 1.2
CPU2: 4
LPARS: mplaix0088
RAM: 130
CPU 1: 1.5
CPU2: 11
LPARS: mo2vio21a
RAM: 6
CPU 1: 1.5
CPU2: 3
LPARS: mo2vio21b
RAM: 6
CPU 1: 1.5
CPU2: 3
[^] # Re: difficile ....
Posté par totof2000 . En réponse au message Script awk : Afficher le nom du fichier en cours de traitement ?. Évalué à 3.
Voici une autre façon de faire.
Awk peut utiliser des chaines de caractères comme indice de tableau. Au lieu d'initialiser un compteur, on peut indexer nos tableaux avec le nom de lpar.
La boucle for permet, lorsqu'on l'utilise sur un tableau, de setter la variable de boucle avec l'indice du tableau (on aurait pu le faire d'ailleurs sur le tableau a indice numérique de l'exemple précédent). On va utiliser cette propriété en bouclant sur un des tableaux qu'on a initialisé, et utiliser la variable de boucle pour afficher les éléments des autres tableaux :