Rechercher : dans
Par :

REGEX SED et commande substitute

Dernière réponse le 6 mai 2008 à 23:13:09 tht123, le 6 mai 2008 à 18:01:20 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « REGEX SED et commande substitute » dans :
Sed - Substitution Voir Substitution Substitution basique Simple Globale Ciblée Substitution conditionnée Simplee Avancée Bloc Avancéé Substitution basique Simple - 1ère occurrence (de chaque ligne) rencontrée uniquement sed 's/la/LA/' fichier.txt
Sed - Introduction à SED - Part I Voir SED - The Stream EDitor - Part I Ce document est une introduction à la pratique et à l'utilisation de l'éditeur de flux "SED", qui essaie de couvrir certaines fonctionnalités assez méconnues, pour ne pas dire "quasi inconnues", qui font de "SED" un...
Sed - Introduction à SED - Part II VoirSED - The Stream EDitor - Part II Ce document est une introduction à la pratique et à l'utilisation de l'éditeur de flux "SED", qui essaie de couvrir certaines fonctionnalités assez méconnues, pour ne pas dire "quasi inconnues", qui font de "SED"...
Sed - Supprimer une ou plusieurs lignes d'un fichier VoirSupprimer une (ou plusieurs) ligne(s) d'un fichier Syntaxe sed '{[/]||[/]}d' sed '{[/][,][/]d' /.../ = délimiteurs n = le numéro de ligne chaîne = la chaîne contenue dans la...
Sed - Introduction à SED - Part III VoirSED - The Stream EDitor - Part III Ce document est une introduction à la pratique et à l'utilisation de l'éditeur de flux "SED", qui essaie de couvrir certaines fonctionnalités assez méconnues, pour ne pas dire "quasi inconnues", qui font de "SED"...
Javascript - L'objet RegExp VoirLes particularités de l'objet RegExp L'objet RegExp est un objet permettant de manipuler des expressions régulières, c'est-à-dire des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, afin de trouver des...
Commandes Linux VoirTableau des principales commandes Linux Commande Description équivalent DOS ls liste le contenu d'un répertoire dir cd change de répertoire cd cd .. répertoire parent cd.. mkdir crée un nouveau...
Commandes UNIX VoirTableau des principales commandes UNIX Commande Unix Description Options ls liste le contenu d'un répertoire -a Affiche tous les fichiers, y compris les fichiers cachés ...

1

jipicy, le 6 mai 2008 à 18:04:26

Salut,

Afin qu'on se comprenne bien, tu peux mettre un "avant" => "après" ;-))
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.

Répondre à jipicy

2

tht123, le 6 mai 2008 à 20:27:03

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?

Répondre à tht123

3

 jipicy, le 6 mai 2008 à 23:13:09

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]$
;-))
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.

Répondre à jipicy