REGEX SED et commande substitute
tht123
Messages postés
72
Statut
Membre
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
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à!
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à!
Configuration: Windows Vista Firefox 2.0.0.14
2 réponses
-
Salut,
Afin qu'on se comprenne bien, tu peux mettre un "avant" => "après" ;-))
-
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?
-
-
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]$;-))