Récupération valeur sur fichier

Weqk -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai un petit souci, je doit récupérer une valeur dans un fichier appeler "cpt" afin de pouvoir l'incrémenter de 1 a chaque passage dans mon script.

Avez vous une idée?

Merci d'avance.

5 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    Une idée avec perl

    ~ $ cat fic
    000
    ~ $ perl -ni -e 's/(.*)/$1 + 1/e;printf "%03d\n",$_' fic
    ~ $ cat fic
    001
    ~ $ perl -ni -e 's/(.*)/$1 + 1/e;printf "%03d\n",$_' fic
    ~ $ cat fic
    002
    ~ $ perl -ni -e 's/(.*)/$1 + 1/e;printf "%03d\n",$_' fic
    ~ $ cat fic
    003
    ~ $ perl -ni -e 's/(.*)/$1 + 1/e;printf "%03d\n",$_' fic
    ~ $ cat fic
    004

    1
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Pas mieux ;-))
      0
    2. Weqk
       
      Au pire je sais coder ce que je veux en c et autre langage biscornu mais la je veux le faire en shell
      0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Merci de poster des exemples concrets de ce que tu veux histoire de bien se comprendre :

    fichier AVANT => APRES

    ;-))
    0
  3. Weqk
     
    Alors concrètement:

    J'ai dans un fichier "texte" une valeur comprise entre 000 et 999 et je dois pouvoir incrémenter cette valeur a chaque exécution de mon script.

    1ere exécution : la valeur passe de 000 à 001
    2nde exécution : la valeur passe de 001 à 002
    ...

    En esperant avoir été clair,

    Merci
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      En esperant avoir été clair,
      Toujours pas ;-((

      je doit récupérer une valeur dans un fichier appeler "cpt"
      Elle est où cette valeur ?
      Elle est seule dans le fichier ?
      Au milieu d'un tas d'autres choses ?

      D'où la demande d'un exemple CONCRET avec affichage dudit fichier !
      0
    2. Weqk
       
      ah ouai pardon, non genre dans le fichier il y a 3 caractères uniquement des chiffres allant donc de 000 à 999.
      0
    3. Weqk
       
      Toujours pas clair?
      0
    4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      hello
      $ cat a1
      000
      $ printf "%03d\n"  $(($(cat a1)+1)) > a1
      $ cat a1
      001
      $ printf "%03d\n"  $(($(cat a1)+1)) > a1
      $ cat a1
      002
      $ printf "%03d\n"  $(($(cat a1)+1)) > a1
      $ cat a1
      003
      $ 
      0
    5. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut,

      Ah, oui, pas besoin de fichier tmp vu qu'on lit d'abord avec cat. Quelq c** je suis.
      Ca doit être le boulot qui m'a empêché de voir ça ;-)))
      0
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    ~ $ cat fic
    000
    ~ $ awk '{printf "%03d", $0 + 1}' fic > fic.tmp && mv -v fic.tmp fic
    'fic.tmp' -> 'fic'
    ~ $ cat fic
    001
    ~ $ awk '{printf "%03d", $0 + 1}' fic > fic.tmp && mv -v fic.tmp fic
    'fic.tmp' -> 'fic'
    ~ $ cat fic
    002
    ~ $ awk '{printf "%03d", $0 + 1}' fic > fic.tmp && mv -v fic.tmp fic
    'fic.tmp' -> 'fic'
    ~ $ cat fic
    003
    ~ $ awk '{printf "%03d", $0 + 1}' fic > fic.tmp && mv -v fic.tmp fic
    'fic.tmp' -> 'fic'
    ~ $ cat fic
    004
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    ~ $ cat fic 
    000 
    ~ $ printf "%03d" $(($(cat fic) + 1)) > fic.tmp && mv -v fic.tmp fic 
    'fic.tmp' -> 'fic' 
    ~ $ cat fic 
    001 
    ~ $ printf "%03d" $(($(cat fic) + 1)) > fic.tmp && mv -v fic.tmp fic 
    'fic.tmp' -> 'fic' 
    ~ $ cat fic 
    002 
    ~ $ printf "%03d" $(($(cat fic) + 1)) > fic.tmp && mv -v fic.tmp fic 
    'fic.tmp' -> 'fic' 
    ~ $ cat fic 
    003
    --

    GNU/Linux:Linux is Not Ubuntu! Quel linux choisir ne veut pas dire votre Distribution préférée,
    106485010510997108
    0