Substituer un seul caractère en AWK
Bonjour,
Je suis toujours sur mon script de variabilisation.
Maintenant j'essai de substituer UN seul caractère dans une chaine de caractère.
Par exemple, soit la ligne de mon fichier :
RUN PROGRAM(SRLOSABA) PLAN(SRLOS77A)
ce qui m'interesse c'est de substituer le 7 en gras par la variable £JEU,
j'ai essayé avec un sub mais le problème c'est qu'il me substitue le premier
7 et non le second (c'est toujours le dernier chiffre qui doit etre variabilisé)
J'ai réussi à faire en sorte que mon AWK fonctionne en matchant les lignes comme si dessous
Code:
1 2 3 4 5 6 7
| match($0,"PLAN[(].*[0-9][ABSP][)]") {
JEU=substr($0,RSTART+(RLENGTH-3),1)
JEU_match=substr($0,RSTART+5,RLENGTH-7)
JEU_debut=substr($0,RSTART+5,RLENGTH-8)
JEU_chaine=JEU_debut"£JEU"
sub(JEU_match,JEU_chaine)
} |
RESULTAT :
RUN PROGRAM(SRLOSABA) PLAN(SRLOS7£JEUA)
ça marche bien comme ci dessus (découpant les chaines de caractère avant et après le 7 et en recollant le tout) mais je trouve que cela fait très usine à gaz ;)
comment substituer un seul caractère déterminé dans une chaine ?
Merci