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

3 réponses

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
dubcek Messages postés 19021 Statut Contributeur 5 638
 
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
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