• # D'un Z qui veut dire Zorroooooo!!!

    Posté par . En réponse au message Récupérer des infos d'un fichier : parser.. Évalué à 2.

    C'est con que tu te restreignes à bash... si tu avais choisi un shell normal tu aurais fait ça les doigts dans le nez!

    Petit exemple avec un shell dont la première lettre est la dernière de l'alphabet:

    On va dire que ton fichier est "t" et contient la chaine exact au dessus. Déja, on fait un coup de tr pour avoir la bonne syntaxe :
    aa=($(tr "{},:" " " < t))

    Hop, on met ça dans un tableau. (Il y aurait moyen d'utiliser un tableau associatif mais j'ai pas réussi) :
    bb=${(z)aa}

    On veut un champ? On cherche l'index de la clef, et on a la valeur au champ + 1 :
    print $bb[(($bb[(i)"sender"]+1))]
    "Jean Jean"

    Dégageons ces guillements :
    print ${(Q)bb[(($bb[(i)"sender"]+1))]}
    Jean Jean

    La clé "metadata" est particulière, il faut refaire le même traitement récursivement :
    md=(${(Qz)bb[(($bb[(i)"metadata"]+1))]})

    Et on récupère le champ de la même manière :
    print $md[(($md[(i)email15]+1))]
    jean@reseau.loc9

    Bluffant, non? Et le tout avec une syntaxe super claire! (bon ok je sors... et avant de sortir, j'avoue que ça déconne un peu du coté de homeStreet21 à cause des espaces... mais avec les bons flags il est peut être possible de corriger ça)