Script 2 : filtreurPROPRE
On va avoir besoin de nettoyer le fichier avant de l’imprimer car on utilise des entités pour coder les caractères accentués et autres caractères non ASCII. Pour ça, on va utiliser la fonction rechercher-remplacer.
programme :
#!/usr/bin/perl
open(FILEIN,"$ARGV[0]"); # on ouvre le fichier qu'on va lire
open(FILEOUT, ">resultatsPROPRE.txt"); # on ouvre le fichier sur lequel on va écrire
$i=1; # compteur
while ($ligne = <FILEIN>){ # tant qu'il y a qqch à lire, on rentre dans la boucle
if ($ligne=~/<description>([^<]+)<\/description>/){ # si on trouve ce motif, on entre dans la boucle
my $propre=$1;# on prend le motif et on le met dans $propre
$propre=~s/&#39;/\'/g; # nettoie
$propre=~s/&#34;/\"/g; # nettoie
$propre=~s/é/é/g; # nettoie
$propre=~s/ê/ê/g; # nettoie
print FILEOUT "contenu de la ligne n°$i : $propre\n"; # on affiche dans le fichier de sortie le motif trouvé et on les numérote avec le compteur
$i++; # on incrémente le compteur
} # fin de if
} # fin de while
close(FILEIN); # on ferme le fichier en lecture
close(FILEOUT); # on ferme le fichier en sortie
sortie :
contenu de la ligne n°1 : Toute l'actualité au moment de la connexion
contenu de la ligne n°2 : Un document confidentiel, que s'est procuré "Le Monde", trace les contours du désastre entraîné par le scrutin du 27 décembre, qui vient de plonger le Kenya dans une vague de violences.
contenu de la ligne n°3 : La guerre pour l'investiture républicaine dans l'Iowa, dont le caucus du 3 janvier est capital, fait rage entre les deux hommes. M. Huckabee, qui a effectué une percée inattendue, est en tête selon les derniers sondages.
contenu de la ligne n°4 : Pour aider ceux qui veulent renoncer au tabac, pharmaciens et médecins proposent timbres cutanés et inhalateurs. Efficacité comparée des différents traitements, avis des spécialistes... et méthodes alternatives.
explications supplémentaires :
L'option 'g' permet de traiter toutes les occurences et pas seulement la première occurence du caractère à remplacer.