Mettre une variable sur 3 chiffres

Résolu
Patrick33 -  
dubcek Messages postés 18627 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!

2 réponses

  1. Utilisateur anonyme
     
    salut,

    printf '%03d\n'  1 12 113 1114
    2
    1. Patrick33
       
      a quoi servent tout les chiffres après le printf?
      0
    2. 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
    3. Patrick33
       
      Non ça j'avais compris je parle de ceux après la commande "1 12 113 1114"
      0
    4. 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
    5. Patrick33
       
      il me manquait le $() c'est reglé merci de ton aide!
      0
  2. blux Messages postés 2045 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
    1. 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