#!/usr/bin/perl -w #ouverture locale use locale; #ouverture d'un fichier en position 0 dans cygwin béta 20, référencé ensuite par FILE open (FILE,"$ARGV[0]"); #ouverture d'un fichier en écriture, si ce fichier existait auparavant : l'ancien contenu est écrasé. #ce fichier s'appelle "resultat4.txt" open (OUT,">resultat4.txt"); #while est une boucle qui signifie "tant que". #A l'intérieur des parenthèse, on a la condition qui est de lire toutes les lignes du fichier. Ces lignes sont stockés dans la variable $a #Tant que je peux lire des lignes, je le fais... la condition étant rempli, on peut donc rentrer dans la boucle. while ($a=){ #La fonction chomp permet d'enlever les retours de lignes chomp($a); ############ solution 1 ############### #Si la variable $a qui renvoie à une ligne rencontre la séquence "les" alors : if ($a=~/\bles\b/) { #je recherche la séquence "les", et je remplace par "des". # "g" signifie partout (partout où je vois le changement, je le fais) et "i" signifie que ça soit en miniscule ou majuscule, je fais le remplacement $a=~s/\bles\b/des/gi; # on affiche la variable a dans le fichier de sortie print OUT "$a \n"; } # sinon, on fait ça si on n'a pas rencontré la condition ci-dessus: else { # on affiche la variable a dans le fichier de sortie print OUT "$a \n"; } #En gros, cette condition se résume à cette question et à sa réponse: Est ce qu' il y a le mot "les" dans la ligne? si oui, on fait le remplacement de "les" par "des" et on afiche la ligne modifiée dans le fichier de sortie sinon on affiche comme même la ligne dans le fichier de sortie ########### solution 2 ############ #Cette solution qui est équivalente à la salution 1 est beaucoup plus rapide à coder. # Attention, on insère la boucle et ses 2 lignes de code ci-dessous #La première ligne de code signifie que je recherche "les" et que je remplace par "des". # Ce symbole "\b" signifie début ou fin # "g" signifie partout (partout où je vois le changement, je le fais) et "i" signifie que ça soit en miniscule ou majuscule, je fais le remplacement #$a=~s/\bles\b/des/gi; # on affiche la variable a dans le fichier de sortie #print OUT "$a \n"; ################################### } #on ferme le fichier de lecture close (FILE); #on ferme le fichier de sortie close(OUT);