Classer le numéro de version d'un logiciel

pinardo -  
 pinardo -
Bonjour,

j'aurai une question toute bete :

je cherche à classer des dossier avec des nom de version de logiciel (1.23 , 2.0 , 4.6 , ect ... ) , en utilisant uniquement les noms des dossiers
le résulta c'est que l'ordre soit du genre :
4.6
2.0
1.23

j'essaye avec ls | awk -F[.] '{print $1$2}' | sort -nr , mais ça classe d'une mauvaise façon

comment ça marche ?

2 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Extrait du man ls :

           -v     Trier le contenu des répertoires en fonction de la  version  des
                  fichiers.  Ceci prend en compte le fait que les noms de fichiers
                  utilisent fréquemment des indices ou des numéros de version. Les
                  fonctions de tri standards ne fournissent pas en général l'ordre
                  attendu car les comparaisons ont lieu caractère  par  caractère.
                  Le  tri  de  version  gère  ce problème, et est particulièrement
                  utile lorsque l'on parcourt des répertoires  contenant  de  nom-
                  breux  indices  ou  numéros de version dans les noms de fichier.
                  Par exemple :
                       $ ls -1            $ ls -1v
                       foo.zml-1.gz       foo.zml-1.gz
                       foo.zml-100.gz     foo.zml-12.gz
                       foo.zml-12.gz      foo.zml-25.gz
                       foo.zml-25.gz      foo.zml-100.gz
                  Remarquez que les parties numériques commençant  par  des  zéros
                  sont considérées comme des décimales :
                       $ ls -1            $ ls -1v
                       abc-1.007.tgz      abc-1.007.tgz
                       abc-1.012b.tgz     abc-1.01a.tgz
                       abc-1.01a.tgz      abc-1.012b.tgz
                  (Ceci est une nouveauté des fileutils-4.0).

    ;-))
    0
  2. pinardo
     
    Merci jipicy !!

    Tu est le meilleur !!!
    0