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   -
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à!
Configuration: Windows Vista
Firefox 2.0.0.14

2 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Afin qu'on se comprenne bien, tu peux mettre un "avant" => "après" ;-))
    0
    1. tht123 Messages postés 72 Statut Membre
       
      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?
      0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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]$
    ;-))
    0