Lignes de code Script perl

jessyjames75 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour à Tous et à Toutes,

Mon cas est le suivant:

Je dispose d'un répertoire avec de nombreux fichiers textes ayant tous un contenu quasi similaire. J'aimerais que mon .pl exécute les documents un à un et qu'il extrait:

- Un contenu texte compris entre <MOT1> et plusieurs lignes plus loin <MOT2>
- Qu'il récupère la ligne commençant par <RESUMER> (par exemple)
- Qu'il rajoute une ligne de <blabla "NOMDUFICHIER"> au début puis une autre <end> à la fin

Puis S'ENREGISTRE

Exemple (raccourci) de document à traiter:
<bla>
<bla>
<bla>
<MOT1>
<bli>
<bli>
<MOT2>
<bla>
<bla>
<RESUMER>
<bla>
<bla>

Ce qui représente le Saint Graal pour moi :

<TEXTEBLABLA="NOMDUFICHIER">
<MOT1>
<bli>
<bli>
<MOT2>
<RESUMER>
<END>

Cette requête est à exécuter sur windows XP.
Actuellement je fonctionne avec des .bat qui me pré-mâche le travaille, on m'a conseiller d'écrire ce petit script en PERL mais ma connaissance est nouvelle (trop encore...)

N'hésitez pas si besoin d'amples informations et Merci d'avance pour votre retour.

1 réponse

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    A adapter pour Windows
    lami20j@debian:~$ cat fic1
    <bla>
    <bla>
    <bla>
    <MOT1>
    <bli>
    <bli>
    <MOT2>
    <bla>
    <bla>
    <RESUMER> aaaaa
    <bla>
    <bla>
    lami20j@debian:~$ cat fic2
    <bla>
    <bla>
    <bla>
    <MOT1>
    <bli>
    <bli>
    <MOT2>
    <bla>
    <bla>
    <RESUMER> bbbb
    <bla>
    <bla>
    lami20j@debian:~$ cat ecrire.pl 
    #!/usr/bin/perl -i.orig
    use strict;use warnings;
    
    while (<>){
      print "<TEXTEBLABLA=\"NOMDUFICHIER\">\n" if $.==1;
      print if /\<MOT1\>/ ... /\<MOT2\>/;
      print if /^<RESUMER>/;
      print "<END>\n" if eof;
    }
    
    lami20j@debian:~$ perl ecrire.pl fic*
    lami20j@debian:~$ cat fic1
    <TEXTEBLABLA="NOMDUFICHIER">
    <MOT1>
    <bli>
    <bli>
    <MOT2>
    <RESUMER> aaaaa
    <END>
    lami20j@debian:~$ cat fic2
    <MOT1>
    <bli>
    <bli>
    <MOT2>
    <RESUMER> bbbb
    <END>
    lami20j@debian:~$  

    0