Transformer une valeur numérique
Fermé
bzhmickael35
Messages postés
4
Date d'inscription
samedi 27 octobre 2018
Statut
Membre
Dernière intervention
10 décembre 2018
-
Modifié le 17 déc. 2018 à 10:23
lEprofSonDkon Messages postés 211 Date d'inscription jeudi 13 décembre 2018 Statut Membre Dernière intervention 8 octobre 2022 - 17 déc. 2018 à 14:32
lEprofSonDkon Messages postés 211 Date d'inscription jeudi 13 décembre 2018 Statut Membre Dernière intervention 8 octobre 2022 - 17 déc. 2018 à 14:32
A voir également:
- Transformer une valeur numérique
- Pavé numérique bloqué - Guide
- Clavier numérique bloqué - Guide
- Donner une valeur numérique à un texte dans excel - Forum Excel
- Transformer une image en icone - Guide
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
2 réponses
mamiemando
Messages postés
33030
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 mars 2024
7 736
17 déc. 2018 à 10:50
17 déc. 2018 à 10:50
Bonjour,
Voici une manière de procéder :
script.awk
Ce qui donne à l'exécution :
Quelques explications :
Bonne chance
Voici une manière de procéder :
script.awk
/[0-9]+-[0-9]+/ { n = split($0, array, "-") imin = int(array[1]) imax = int(array[2]) s = ""; for (i = imin; i <= imax; i++) { if (i > imin) s = s "," s = s i; } print s; }
Ce qui donne à l'exécution :
(mando@silk) (~) $ echo "3001-3009" | awk -f script.awk
3001,3002,3003,3004,3005,3006,3007,3008,3009
Quelques explications :
- La première ligne s'assure que la ligne qui entre est formée de deux entiers séparés d'un tiret (voir expressions régulières)
- La ligne suivante sépare la ligne en question sur le caractère
-
et stocke les deux valeurs dans le tableauarray
. - On construit ensuite progressivement une chaine
s
en itérant sur les valeurs déduites dearray
.
Bonne chance
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 616
17 déc. 2018 à 11:14
17 déc. 2018 à 11:14
hello
$ var="3001-3009"; seq -s "," ${var%%-*} ${var##*-}
3001,3002,3003,3004,3005,3006,3007,3008,3009
17 déc. 2018 à 14:32
il faut s'assurer que la données ne contient que des nombres, du début ( ) à la fin ( ) : .
et on peut simplifier la boucle : .