Perl Supprimer redondance dans paragraphe

orlando_84 Messages postés 6 Statut Membre -  
orlando_84 Messages postés 6 Statut Membre -
Bonjour,

Je souhaite connaitre la commande pour supprimer les redondances présent dans un même paragraphe

exemple

For AAAAAAAAAAAA
toto
toto
toto
toto
tata
tata
tata
titi
For BBBBBBBBBB
toto
toto
tata
titi
(end fichier)

résultat souhaite:
-------------------

For AAAAAAAAAAAA
toto
tata
titi
For BBBBBBBBBB
toto
tata
titi

merci d'avance
Configuration: Windows XP / Firefox 3.5.8

3 réponses

  1. orlando_84 Messages postés 6 Statut Membre
     
    j'avais commencez un script en shell sur linux (grep -e , sed, sort -u)

    mais celui ci n'ai pas compatible avec un Sun

    donc je me rabattu sur le PERL
    0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    avec awk:
    Sur Solaris, utiliser nawk
    $ cat a1
    For AAAAAAAAAAAA
    toto
    toto
    toto
    toto
    tata
    tata
    tata
    titi
    For BBBBBBBBBB
    toto
    toto
    tata
    titi
    $ awk '/For/ {print;i=$0;next}; {if(!x[$0,i])print;x[$0,i]=$0}' < a1
    For AAAAAAAAAAAA
    toto
    tata
    titi
    For BBBBBBBBBB
    toto
    tata
    titi
    $ 
    
    0
  3. orlando_84 Messages postés 6 Statut Membre
     
    Voici ma solution

    open(FILE_TEMP, "<FILE_TEMP") or die "Cannot open fichier : $!";
    open(FILE_FINAL, ">FILE_FINAL") or die "Cannot open fichier : $!";

    my @FILE_TABLE= <FILE_TEMP>;
    my $i = 0;
    foreach my $element (@FILE_TABLE) {
    if ($element ne $FILE_TABLE[$i+1]) {
    print FILE_FINAL $element;
    }
    $i++;
    }

    close (FILE_FINAL);
    close (FILE_TEMP);
    0