Mettre une variable sur 3 chiffres

Résolu
Patrick33 -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour utilisateur du forum,
Je viens vous voir car j'aimerai savoir si il était possible de forcer une variable qui comporte un chiffre/nombre d'être sur un certain nombre d'espace.
Par exemple si je fais varA=001 et qu'ensuite j'incrémente cette variable, sa valeur sera 2 alors que j'aimerais que ce soit 002.
Merci d'avance pour vos réponses!
A voir également:

2 réponses

Utilisateur anonyme
 
salut,

printf '%03d\n'  1 12 113 1114
2
Patrick33
 
a quoi servent tout les chiffres après le printf?
0
Utilisateur anonyme
 
c'est le format ! XD
d : indique un entier
3 : indique le décalage vers la droite souhaité
0 : indique de compléter à gauche avec des zéros

cf. man 3 printf
0
Patrick33
 
Non ça j'avais compris je parle de ceux après la commande "1 12 113 1114"
0
Patrick33
 
La commande fonctionne mais pas lorsque je la rentrer dans une variable.
varB=printf '%03d\n' $varA
Il s'agit sans doute d'une erreur bête car je débute le shell
0
Patrick33
 
il me manquait le $() c'est reglé merci de ton aide!
0
blux Messages postés 27127 Date d'inscription   Statut Modérateur Dernière intervention   3 360
 
Salut,

c'est dans quel but ?
Parce que si la finalité est juste l'affichage, alors tu gères en numérique en interne et lorsque tu veux afficher, tu formates...
0
Patrick33
 
J'ai une série d'une centaine de fichier de la forme nomdufichier_000.txt. Le nombre à la fin du nom s'incrémente.
Je cherche à effectuer une opération sur ces fichiers les uns après les autres dans l'ordre croissant pour cela je souhaiterais utiliser une variable pour faire par exemple "grep -n 'toto' *$mavariable.txt" cependant cette variable quand je l'incrémente il l'a simplifie. C'est à dire qu'il va faire 001 + 1 = 2 et non pas 002 du coup au prochain passage il cherchera le fichier *2.txt ce qui ne pointe plus vers un seul est unique fichier.
0