• # ZSH encore vainqueur par KO!

    Posté par . En réponse au message Comment récupérer des valeurs dans un fichier pour effectuer une substitution dans un autre ? RESOLU. Évalué à 3.

    En 5 lignes, sans aucune commande externe:

    #!/bin/zsh
    v=( $(<1ドル) )
    d=( ${(f)"$(<2ドル)"} )
    for (( i=1; i <= ${#d}; i++ ))
    	d=( ${d//${${=d[i]}[1]}/$v[i]} )
    print -l $d
    
    

    Avant de passer aux explications, ouvrez votre fenêtre et criez « Gloire à Zsh » 5 fois à la cantonade.

    On part du principe que v et d font la même longueur, et que le premier mot de chaque ligne de d est unique.

    Dans le tableau v, on met le fichier en argument 1 contenant le nom des ville (1 élément = 1 ville).
    Dans le tableau d, on met le fichier en argument 2 avec les infos à substituer (1 élément = 1 ligne).
    Puis, pour chaque ligne n de d, on remplace le premier mot de cette ligne par la n-ième ville (avec le remplacement qui s'applique sur la totalité de d).
    Enfin on affiche d en sautant une ligne à chaque élément.

    Bien entendu, je viens de pondre ce script du premier coup, et je ne l'ai même pas vérifié tellement il est évident qu'il marche... Que je sois foudroyé si je m