Remplacer une chaine de car variable dans un fichier [Résolu/Fermé]

Signaler
Messages postés
10
Date d'inscription
jeudi 14 janvier 2016
Statut
Membre
Dernière intervention
15 janvier 2016
-
Messages postés
10
Date d'inscription
jeudi 14 janvier 2016
Statut
Membre
Dernière intervention
15 janvier 2016
-
Bonjour,

Je souhaite remplacer dans un fichier la chaîne de car 1507 (position 40-44) par MT1507. Etant donné que la valeur de cette chaîne est variable je ne peux pas utiliser la commanda sed classique. (sed -i "s/201507/MT201507/" fichier)

Voici un exmple de la ligne de mon fichier :

0000 0001-01-01BDA 1507 M

Merci pour votre aide c'est urgent.

Cordialement,


2 réponses

Salut,

En fonction de l'exemple donné et les explications fournies :

$ echo "0000 0001-01-01BDA 1507 M" | sed 's/.\{19\}/&MT/'
0000 0001-01-01BDA MT1507 M
Messages postés
10
Date d'inscription
jeudi 14 janvier 2016
Statut
Membre
Dernière intervention
15 janvier 2016

Merci pour votre retour rapide.
La commande fonctionne trés bien par contre ca me décale le reste de la ligne de 2 car.

Résultat souhaité :
000000000VELFR12919 *FZY90 0000 0001-01-01BDA MT1507 M +00000000300

Résultat obtenu :
000000000VELFR80769 *FZY90 0000 0001-01-01BDA MT1507 M +00000000300

Y'a t-il un moyen de remplacer la chaîne sans décaler la suite de la ligne ?

D'avance merci
Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 330
donc supprimer les positions 110 111 112 113 ?
Messages postés
10
Date d'inscription
jeudi 14 janvier 2016
Statut
Membre
Dernière intervention
15 janvier 2016

c'est bien ça.
>
Messages postés
10
Date d'inscription
jeudi 14 janvier 2016
Statut
Membre
Dernière intervention
15 janvier 2016

 sed -r 's/^(.{109})..../\1/'
devrait le faire
Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 330
essayer
sed -r 's/^(.{109}).{4}/\1/'
Messages postés
10
Date d'inscription
jeudi 14 janvier 2016
Statut
Membre
Dernière intervention
15 janvier 2016

Merci beaucoup dubcek.
Bonne journée a toi et a Ungars.