[PERL] de l'aide pour petite manip de champs dans un fichier

de l'aide pour petite manip de champs dans un fichier [PERL] - Perl - Programmation

Marsh Posté le 13-01-2008 à 14:54:26    

bonjour,
 
je maitrise correctement le AWK mais là, ca me semple penible en AWK alors je demande de l'aide pour me donner du code perl pour resoudre mon probleme :
 
j'ai un ou plusieurs fichiers contenant des champs delimités par des pipes.
les fichiers n'ont pas tous le meme nombre de champs.
j'ai besoin de supprimer certains champs.
 
j'aimerais donc un script qui prend en argument le nom d'un fichier texte
et une ou plusieurs valeurs qui sont les numeros des champs a mettre a
null (mettre 2 pipes consécutifs donc, a la place de pipe-ancienne valeur-pipe...).
 
je crois me souvenir qu'il existe une commande qui transforme une ligne en
tableau, et je verrais bien une boucle pour mettre a null certains champs
puis retransformer en ligne avec "|" en separateur...
 
mon exeprience en perl et faible et ancienne, merci pour votre aide....
 
S.

Reply

Marsh Posté le 13-01-2008 à 14:54:26   

Reply

Marsh Posté le 13-01-2008 à 15:16:28    

Il faut utiliser la command perl en mode -a -F '|', le resultat du splitting se retrouve dans le tableau @F
 
par exemple :

Code :
  1. perl -an -F '|' -e '$F[1]=undef;print join("|",@F);' fichier_a_parser.txt


Sinon la fonction qui permet de découper une chaine de charatere suivant un pattern est la fonction split

Code :
  1. @res_split = split(/\|/,$source_str);


 
Cordialement

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed