Posez votre question Signaler

REGEX SED et commande substitute

tht123 72Messages postés 8 mai 2007Date d'inscription - Dernière réponse le 6 mai 2008 à 23:13
Bonjour,
Je tente de remplacer une ligne par elle même complétée par des points virgules à des endroits fixes, mais sans succès...
Le problème est que toute les lignes n'ont pas la même longueur..
Je dois faire :
REMPLACER caractère n°16 par ";"
offset1=25
offset2=15
i=0
While not(FIN DE LIGNE) DO
begin
REMPLACER caractère n°50+(i*offset1) par ";"
REMPLACER caractère n°90+(i*offset2) par ";"
inc(i);
end;
Pourriez vous m'aider je suis dans le ...
Merci dores et déjà!
Lire la suite 

REGEX SED et commande substitute »

Suggestions
3 réponses
Réponse
+0
moins plus
Salut,

Afin qu'on se comprenne bien, tu peux mettre un "avant" => "après" ;-))
tht123- 6 mai 2008 à 20:27
Bien voici un exemple:
depart :

TXT000001 DATA XYZ  GVFTR NJI          X4     YY          
TXT000651 DATA XttavGTRE  NJI           aa     gg          56     
TXT003451 DATA XYZ  HVFTR NJI          XX     YY          aa     bb          kk     

Je dois arriver à :

TXT000001;DATA XYZ ;GVFTR NJI;X4;YY
TXT000651;DATA Xtta;GTRE  NJI;aa;gg;56   
TXT003451;DATA XYZ ;HVFTR NJI;XX;YY;aa;bb;kk

ou alors si c'est plus simple :

TXT000001;DATA XYZ ;GVFTR NJI;X4;YY;;;
TXT000651;DATA Xtta;GTRE  NJI;aa;gg;56 ;;;  
TXT003451;DATA XYZ ;HVFTR NJI;XX;YY;aa;bb;kk

C'est plus clair?
Ajouter un commentaire
Réponse
+0
moins plus
Tiens, ça fait pas tout à fait ce que tu veux, mais bon vu la complexité de la chose, c'est une bonne piste à explorer...
[tmpfs]$ cat tht123
TXT000001 DATA XYZ  GVFTR NJI          X4     YY
TXT000651 DATA Xtta GTRE  NJI           aa     gg          56
TXT003451 DATA XYZ  HVFTR NJI          XX     YY          aa     bb          kk

[tmpfs]$ sed '
s/\(.\{9\}\).\(.*\)/\1;\2/
s/\(.\{19\}\).\(.*\)/\1;\2/
s/\(.\{29\}\)[ ][^a-zA-Z]*\(.*\)/\1;\2/
s/[ ]\{3,\}/;/g
' tht123

TXT000001;DATA XYZ ;GVFTR NJI;X4;YY;
TXT000651;DATA Xtta;GTRE  NJI;aa;gg;56;
TXT003451;DATA XYZ ;HVFTR NJI;XX;YY;aa;bb;kk

[tmpfs]$
;-))
Ajouter un commentaire
Ce document intitulé « REGEX SED et commande substitute » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?