Addition (+)

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
A voir également:

8 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Remplace :
s/[ [:digit:]]/${hexapost_seq_maj}/
par :
s/[0-9]\+/${hexapost_seq_maj}/
et ça devrait le faire ;-))
0
rojina2903 Messages postés 96 Statut Membre 13
 
salut jipicy

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
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
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...
0
rojina2903 Messages postés 96 Statut Membre 13
 
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`
0
rojina2903 Messages postés 96 Statut Membre 13
 
bonjour

up puisque je bloque toujours

merci
0

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

Posez votre question
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Et sans la redirection dans un fichier, est-ce que l'affichage à l'écran donne le résultat espéré ?
0
rojina2903 Messages postés 96 Statut Membre 13
 
salut
non, on m'affiche un message d'erreur : sed : Function HEXAPOST_SEQ/ s/[0-9]\+/14/ cannot be parsed
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Alors essaie avec cette syntaxe alors :
s/[0-9][0-9]*/$var/
;-))
0
rojina2903 Messages postés 96 Statut Membre 13
 
ça marche

merci de me sauver la vie à quaque fois :)
0