Récupération valeur sur fichier

Fermé
Weqk - 5 août 2010 à 16:20
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 - 6 août 2010 à 11:02
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.
A voir également:

5 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
6 août 2010 à 09:39
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
6 août 2010 à 09:40
Pas mieux ;-))
0
Au pire je sais coder ce que je veux en c et autre langage biscornu mais la je veux le faire en shell
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
5 août 2010 à 16:31
Salut,

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

fichier AVANT => APRES

;-))
0
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
6 août 2010 à 09:08
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
ah ouai pardon, non genre dans le fichier il y a 3 caractères uniquement des chiffres allant donc de 000 à 999.
0
Toujours pas clair?
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
6 août 2010 à 10:46
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
6 août 2010 à 10:54
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
6 août 2010 à 10:48
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
Modifié par lami20j le 6/08/2010 à 10:56
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