IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Incrémenter un nombre sur plusieurs chiffres : 001 => 50000


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2020
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Mars 2020
    Messages : 62
    Par défaut Incrémenter un nombre sur plusieurs chiffres : 001 => 50000
    Bonjour à tous,

    J'ouvre une question sur le format des nombres en shell. Dans un boucle je voudrai afficher un nombre I=001
    incrémenté de 1 jusque 100000.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    I=001
    for i in `ls "$TMPDIR"/*.pdf`
    do
                 FILE_NAME=`ls -l $i | awk '{print $9}' | awk -F'/' '{print $5}'`
     
    echo FILE_NAME_"$I"="$FILE_NAME"
     
    I=$((I+1))
     
    done
    ca fait évidement: FILE_NAME_001= toto , FILE_NAME_2=titi etc ....
    je voudrai pouvoir afficher le nombre comme ceci: 001,002 ....

    Si vous avez une idée ... merci d'avance.

  2. #2
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 389
    Par défaut
    On manque d'information du format, donc voici juste une piste:
    Ceci te donnera les valeurs de 001 à 100, mais si tu remplace 100 par 1000, ça donnera 0001 à 1000, etc...

  3. #3
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 389
    Par défaut
    Je n'avais pas regardé le script...
    C'est quoi ton but, c'est de faire le plus sale possible ?

    car que cela soit d'un point de vue langage et/ou conception, c'est abominable:
    -ls : N_BaH au secours
    -créer n variables ... ça fait peur

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 692
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 692
    Par défaut
    aujourd'hui 09:20 :
    et je n'oublie pas: stat et jamais ls !
    mon œil !
    à 09:33 tu en mets deux.

    et puis, règle n+1 :
    « quand une commande se pipe à une autre instance d'elle-même, c'est qu'il y a un problème (algorithme, codage...) »

    je voudrai pouvoir afficher le nombre comme ceci: 001,002 ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf '%s_%03d\n' "$fileName" $nombre
    et puis, encore une règle :
    « les noms de variables tout en majuscules sont, par convention, réservés aux variables d'environnement (HOME, PATH, UID).
    les variables utilisateurs peuvent mélanger des majuscules et des minuscules, être "panAchées". »
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    zero=000000
     
     for (( i=0 ; i< 1235 ; i++ )) ; do  echo ${zero:0:${#zero}-${#i}}$i; let i=i+1; done

  6. #6
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 389
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i in {00..999} {1000..5000}; do echo $i ; done

  7. #7
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 692
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 692
    Par défaut
    vos solutions ne sont pas adaptées, puisque NetLink veux faire correspondre le listage de ses fichiers et l'incrémentation.

    il est vrai que la question est mal posée :
    incrémenté de 1 jusque 100000.
    si j'ai bien compris.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] incrémentation nombre sur plusieurs interfaces
    Par stracoma dans le forum VB.NET
    Réponses: 2
    Dernier message: 10/05/2015, 23h13
  2. Nombre sur 2 chiffres
    Par Graimbault dans le forum Débuter
    Réponses: 3
    Dernier message: 24/11/2012, 14h43
  3. Déclarer un nombre sur 4 chiffres
    Par clavelski dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/06/2010, 11h16
  4. Nombre sur deux chiffre
    Par turbo_chess dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 14/03/2009, 15h04
  5. Réponses: 2
    Dernier message: 17/01/2007, 18h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo