Addition (+)
rojina2903
Messages postés
96
Statut
Membre
-
rojina2903 Messages postés 96 Statut Membre -
rojina2903 Messages postés 96 Statut Membre -
Bonjour,
je bloque sur l'une des notion basique d'unix c 'est les operateurs arithmetiques
voici un bout du code:
hexapost_seq=$(sed -n '1 s/.*=\(.*\)/\1/p' $mediapost)
hexapost_seq_maj=`expr $hexapost_seq + 1`
`sed "/HEXAPOST_SEQ/ s/:digit:/${hexapost_seq_maj}/" $mediapost>fich.tmp && mv -f fich.tmp $mediapost`
dans mon fichier hexapost_seq=12
quand j'execute pour la premiere fois j'obtiens
hexapost_seq=132
et quand j'execute pour la deuxième fois j'obtiens:
hexapost_seq=13332
et j'arrive pas à voir ou est l'erreur
merci d'avance pour votre aide
je bloque sur l'une des notion basique d'unix c 'est les operateurs arithmetiques
voici un bout du code:
hexapost_seq=$(sed -n '1 s/.*=\(.*\)/\1/p' $mediapost)
hexapost_seq_maj=`expr $hexapost_seq + 1`
`sed "/HEXAPOST_SEQ/ s/:digit:/${hexapost_seq_maj}/" $mediapost>fich.tmp && mv -f fich.tmp $mediapost`
dans mon fichier hexapost_seq=12
quand j'execute pour la premiere fois j'obtiens
hexapost_seq=132
et quand j'execute pour la deuxième fois j'obtiens:
hexapost_seq=13332
et j'arrive pas à voir ou est l'erreur
merci d'avance pour votre aide
A voir également:
- Linux addition
- Formule addition excel - Guide
- Linux reader - Télécharger - Stockage
- R-linux - Télécharger - Sauvegarde
- Toutou linux - Télécharger - Systèmes d'exploitation
- Backtrack linux - Télécharger - Sécurité
8 réponses
Salut,
Remplace :
Remplace :
s/[ [:digit:]]/${hexapost_seq_maj}/par :s/[0-9]\+/${hexapost_seq_maj}/et ça devrait le faire ;-))
Ben si ça marchait avant, ça devrait marcher aussi, je n'ai modifié que la syntaxe de "sed", pas le reste (redirection et syntaxe bash).
Quelle version de "sed" ? Si supérieure à 4.0.5 il existe l'option "-i" qui modifie le fichier directement...
Quelle version de "sed" ? Si supérieure à 4.0.5 il existe l'option "-i" qui modifie le fichier directement...
Oui normalement ça doit marcher peut etre que j'ai touché à quelque chose
je peux pas utiliser l'option "-i"
ci dessous un bout du script
#!/usr/bin/ksh
path_file_mediapost=../fichier_maj
mediapost=$path_file_mediapost/mediapost.txt
hexapost_seq=$(sed -n '1 s/.*=\(.*\)/\1/p' $mediapost)
hexapost_seq_maj=`expr $hexapost_seq + 1`
echo $hexapost_seq
echo $hexapost_seq_maj
`sed "/HEXAPOST_SEQ/ s/[0-9]\+/${hexapost_seq_maj}/" $mediapost>fich.tmp && mv -f fich.tmp $mediapost`
je peux pas utiliser l'option "-i"
ci dessous un bout du script
#!/usr/bin/ksh
path_file_mediapost=../fichier_maj
mediapost=$path_file_mediapost/mediapost.txt
hexapost_seq=$(sed -n '1 s/.*=\(.*\)/\1/p' $mediapost)
hexapost_seq_maj=`expr $hexapost_seq + 1`
echo $hexapost_seq
echo $hexapost_seq_maj
`sed "/HEXAPOST_SEQ/ s/[0-9]\+/${hexapost_seq_maj}/" $mediapost>fich.tmp && mv -f fich.tmp $mediapost`
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
salut
non, on m'affiche un message d'erreur : sed : Function HEXAPOST_SEQ/ s/[0-9]\+/14/ cannot be parsed
non, on m'affiche un message d'erreur : sed : Function HEXAPOST_SEQ/ s/[0-9]\+/14/ cannot be parsed
j'ai modifié la ligne de commande comme vous m'avez expliqué.
je met dans mon fichier
hexapost_seq=13
et j'execute et il m'affiche 14 donc ça marche mais le script ne modifie plus le fichier normalement il doit remplacer 13 par 14 dans le fichier mediapost
merci pour votre aide