Trier une variable en shell

Bonjour,

Dites moi comment trier une variable et afficher par chaque elt par odre croissant dans un script shell

Ex: var="af jh n ko u kv ka" (les elt st séparés par des espaces

trier et afficher:

af
jh
ka
ko
kv
n
u

merci pr votre aide

5 réponses

  1. Contributeur
    Salut,

    $ echo "$var"
    af jh n ko u kv ka
    
    $ echo -e "${var// /\n}" | sort
    af
    jh
    ka
    ko
    kv
    n
    u
    
    $

    ;-))
    1. Contributeur
      hello
      $ var="af jh n ko u kv ka" 
      $ var2=$(tr " " "\n" <<<$var | sort)  
      $ echo $var2 
      af jh ka ko kv n u 
      $  
      $ echo "$var2" 
      af 
      jh 
      ka 
      ko 
      kv 
      n 
      u 
      $ 
      1. ne fonctionnent pas

        j'ai tout essayé

        l'affichage je vais m'en occuper
        il me faut var dans une nvlle variable trié avec un séparateur d"elt

        [wilson@wilsonHP mybin]$ var="sxd gdv xgt ahg sh po bs"
        [wilson@wilsonHP mybin]$ var2=$( sort -t" " <<<$var); echo $var2
        affichage=>sxd gdv xgt ahg sh po bs
        [wilson@wilsonHP mybin]$ echo $var | tr " " "\n" | sort -t" " <<<$var2
        affichage=>sxd gdv xgt ahg sh po bs
        [wilson@wilsonHP mybin]$

        ne fonctionne pas
        1. salut,

          avec 'tr', remplace les espaces par une nouvelle ligne, et envoie à 'sort'

          pense à regarder les pages 'info coreutils'.