Ben, dans la boucle, il te faut corriger :
printf( "%s\n", pair[order[ 1 ]] )
> printf( "%s\n", pair[order[ i ]] )
Le 10 août 2010 16:21, Freenawak <freenawak@???> a écrit :
> Désolé de ne répondre qu'aussi tardivement ... retour de congés ;)
>
> Et bien cette solution
>
> cat LOG_TAMPON | awk -F " +: +" ' BEGIN {
> short["Machine"] = "LT"
> short["Traitement"] = "TE"
> short["Application"] = "GT"
> short["Environnement"] = "SG"
> i = 0
> order[i] = "Machine"; i++
> order[i] = "Traitement"; i++
> order[i] = "Application"; i++
> order[i] = "Environnement"; i++
> }
> $1 in short {
> pair[$1] = short[$1] ": " $2
> }
> END {
> for ( j = 0; j < i; j++ )
> {
> printf( "%s\n", pair[order[1]] )
> }
> }'
>
> Me renvoie :
>
> TE: 11mfyTRAENRPP002
> TE: 11mfyTRAENRPP002
> TE: 11mfyTRAENRPP002
> TE: 11mfyTRAENRPP002
>
> Celle ci reste donc sur l'étape TE , je soupçonne la cause du problème au
> niveau de la boucle "for" de lecture du tableau imbriqué, sans en être tout
> à fait certain ...
>
>
> Le 23 juillet 2010 21:20, <rikshell@???> a écrit :
>
> > Et avec cette version, il suffit d'ajouter une ligne ayant la même
> > structure pour étendre la liste ordonnée.
> >
> > BEGIN {
> > short["Machine"] = "LT"
> > short["Traitement"] = "TE"
> > short["Application"] = "GT"
> > short["Environnement"] = "SG"
> > i = 0
> > order[i] = "Machine"; ++i
> > order[i] = "Traitement"; ++i
> > order[i] = "Application"; ++i
> > order[i] = "Environnement"; ++i
> > }
> > $1 in short {
> > pair[$1] = short[$1] ": " $2
> > }
> >
> > END {
> > for (j = 0; j < i; ++j)
> > {
> > printf("%s\n", pair[order[1]])
> > }
> > }
> >
> > Bien à vous
> >
> > Richard
> >
> > On 23 Jul 2010, at 15:27, rikshell@??? wrote:
> >
> > > Bonjour,
> > >
> > > Je pensais à quelque chose de cet ordre (en utilisant l'index sous
> forme
> > de variable - i - et l'incrémentation, il suffit de déplacer les lignes
> > d'initialisation du tableau "order" pour changer l'ordre d'affichage):
> > >
> > > BEGIN {
> > > short["Machine"] = "LT"
> > > short["Traitement"] = "TE"
> > > short["Application"] = "GT"
> > > short["Environnement"] = "SG"
> > > i = 0
> > > order[i] = "Machine"; ++i
> > > order[i] = "Traitement"; ++i
> > > order[i] = "Application"; ++i
> > > order[i] = "Environnement"; ++i
> > > }
> > >
> > > $1 in short {
> > > pair[$1] = short[$1] ": " $2
> > > }
> > >
> > > END {
> > > for (i = 0; i < 4; ++i)
> > > {
> > > printf("%s\n", pair[order[1]])
> > > }
> > > }
> > >
> > > Richard
> > >
> > > On 23 Jul 2010, at 12:14, Simpsonus wrote:
> > >
> > >> Voilà une solution (peut être pas la meilleure) :
> > >>
> > >> cat TON_FICHIER | awk -F ":" '/Machine/ {t[1]="LT :"$2}
> /Ordonnencement/
> > >> {t[2]="Ordo :"$2} /Environnement/ {t[3]="SG :"$2} /Application/
> > {t[4]="GT
> > >> :"$2} /Traitement/ {t[5]="TE :"$2} END {for (i=0; i < 6; i++) { if
> > >> (t[i]){print t[i]}}}'
> > >>
> > >> plutôt que d'écrire les lignes à chaque test, on renseigne un tableau
> et
> > à
> > >> la fin de la lecture de la ligne (END) on écrit le contenu du tableau
> > dans
> > >> l'ordre croissant des indices.
> > >>
> > >> A toi de mettre les indexes du tableau t[] dans l'ordre qui te plait,
> > >> adapte aussi pour Ordo, je ne sais pas quel mot tu cherches dans ton
> > fichier
> > >> pour afficher Ordo :. Si tu as d'autres valeurs à tester change aussi
> le
> > i <
> > >> 6
> > >>
> > >>
> > >> Je ne suis pas parvenu à une solution plus simple partant de la
> version
> > de
> > >> rikshell
> > >>
> > >> @+
> > >> _______________________________________________
> > >> archives :
> > >> http://listes.patpro.net/list/sshfr.fr.html
> > >> http://listes.patpro.net/mailman/listinfo/script_shell_fr
> > >
> > > _______________________________________________
> > > archives :
> > > http://listes.patpro.net/list/sshfr.fr.html
> > > http://listes.patpro.net/mailman/listinfo/script_shell_fr
> >
> > _______________________________________________
> > archives :
> > http://listes.patpro.net/list/sshfr.fr.html
> > http://listes.patpro.net/mailman/listinfo/script_shell_fr
> >
> _______________________________________________
> archives :
> http://listes.patpro.net/list/sshfr.fr.html
> http://listes.patpro.net/mailman/listinfo/script_shell_fr
>
_______________________________________________
archives :
http://listes.patpro.net/list/sshfr.fr.html
http://listes.patpro.net/mailman/listinfo/script_shell_fr