Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/02/2012, à 19:39

rockketlauncher

Récupération du chiffre le plus grand

Bonjour,
Je possède plusieurs répertoire de ce type:
XXX15XXX
XXXXX15_6XXX
XXXX18_2XXX
XXXXXXXXX18_4XXX

Les X sont des caractères qui ne sont pas important.
Ce qui m’intéresse c'est de récupérer le chiffre le plus grand qui correspond à une version logicielle.
Dans l'exemple au dessus je veut récupérer le 18_4. (18_4 = Version 18.4)

Je pensais remplacer le "_" par un "." en premier avec un sed.
Ensuite faire une boucle qui décrémente (de 99 à 1 avec un pas de 0.1) et qui compare le chiffre de la boucle avec la présence de ce chiffre dans le nom du répertoire ce qui fait que le premier chiffre rencontré qui existe serait le plus grand.

exemple:
# on décompte de 99 à 1 par pas de 0.1 --> le chiffre de la boucle correspond à la lettre "i"
#est ce que "i" existe dans les répertoires? si oui on récupère le chiffre le plus grand et on fait autre chose, si non on continu à décrémenter

Je vois comment mettre ça en pratique mais avez vous une meilleure méthode, plus rapide et plus efficace?

Merci.

Hors ligne

#2 Le 08/02/2012, à 19:55

pingouinux

Re : Récupération du chiffre le plus grand

Salut,

sed 's/[^0-9_]//g;s/_/./' fichier_qui_contient_la_liste_des_repertoires|sort -V|tail -1

Ajouté :
On peut même simplifier :

sed 's/[^0-9_]//g' fichier_qui_contient_la_liste_des_repertoires|sort -V|tail -1

Dernière modification par pingouinux (Le 08/02/2012, à 20:06)

Hors ligne