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
    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
    1. salut,

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

      pense à regarder les pages 'info coreutils'.
      0
      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
        0
        1. Contributeur
          Salut,

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

          ;-))
          0