Addition (+)
rojina2903
Messages postés
97
Date d'inscription
Statut
Membre
-
rojina2903 Messages postés 97 Date d'inscription Statut Membre -
rojina2903 Messages postés 97 Date d'inscription 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
8 réponses
-
Salut,
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...
-
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` -
bonjour
up puisque je bloque toujours
merci -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Et sans la redirection dans un fichier, est-ce que l'affichage à l'écran donne le résultat espéré ?
-
salut
non, on m'affiche un message d'erreur : sed : Function HEXAPOST_SEQ/ s/[0-9]\+/14/ cannot be parsed -
Alors essaie avec cette syntaxe alors :
s/[0-9][0-9]*/$var/
;-))
-
ça marche
merci de me sauver la vie à quaque fois :)