Forum Programmation.shell recherche et incremente un numero au fichier

Posté par  .
Étiquettes : aucune
0
27
sept.
2005
Bonjour a tous.

exécutant un logiciel et en mettant en argument le fichier log.
j'ai mis au point un petit script qui permet a chaque exécution.
Mon problème est le suivant:
je fait un script qui permet d'incrémenter un nombre au nom de mon fichier log qui est en argument.
ex: nom du log 001_fichier-200509.txt
----------------------------
#!/bin/ksh
set -x
# Déclaration
Numfic=000
Nomfic="_fichier-"
datefic`date '+%Y%m'`
ext=".txt"
# recherche dans le repertoire dernier fichier existant:
rech=`ls -fl | tail -1| cut -c57-`
Num=`expr $rech + 1`
if [ $rech =! "001"]
then ./mon logiciel -C 001$Nomfic$datefic$ext
else ./mon logiciel -C $Num$Nomfic$datefic$ext
fi

-C permet de cree un fichier log
-----------------------------
si le fichier 001_fichier-200509.txt n'existe pas, mets en argument 001
si le fichier 001_fichier-200509.txt existe, il prochain en argument sera 002_fichier-200509.txt ainsi de suite.

Mais voilà je suis bloqué quand cela passe a +10 jusqu'a 009 ca marche.

Comment faire ?
  • # Et comme ça ?

    Posté par  . Évalué à 2.

    #!/bin/ksh
    
    # Déclaration
    Nomfic="_fichier-"
    datefic=`date '+%Y%m'`
    ext=".txt"
    
    # Recherche du dernier fichier
    unset max
    max=`/bin/ls ???$Nomfic$datefic$ext 2>/dev/null | cut -c1-3 |sort -n |tail -1`
    [ -z "$max" ] && max=1 || max=`expr $max + 1`
    
    Numfic=`printf "%0.3d" $max`
    
    ./mon logiciel -C $Num$Nomfic$datefic$ext
    
    • [^] # Re: Et comme ça ?

      Posté par  . Évalué à 2.

      Merci beaucoup,

      vu ton code, a mon avis je dois retourner prendre des cours a l'école.

      ton code fonctionne mais juste une petiie erreur.

      ./mon logiciel -C $Numfic$Nomfic$datefic$ext

      Merci encore.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.