Perl Supprimer redondance dans paragraphe

orlando_84 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
orlando_84 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
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 Date d'inscription   Statut Membre Dernière intervention  
 
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 18789 Date d'inscription   Statut Contributeur Dernière intervention  
 
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 Date d'inscription   Statut Membre Dernière intervention  
 
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