REGEX SED et commande substitute

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. Modérateur
    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]$
    ;-))
    1. Modérateur
      Salut,

      Afin qu'on se comprenne bien, tu peux mettre un "avant" => "après" ;-))
      1. 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?