Re: [#!/fr] Recherche de champs dans un fichier.

Page principale
Supprimer ce message
Répondre à ce message
Auteur: rikshell
Date:  
À: La liste francophone des scripts shell
Sujet: Re: [#!/fr] Recherche de champs dans un fichier.
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