A travers ce site nous vous présentons notre projet : élaborer un programme qui permet, grâce à des informations tirées du web, de répondre à notre problématique. La vision du nucléaire a-t-elle changé après la catastrophe de Fukushima ?

Nucléaire : vision d'hier et d'aujourd'hui

Quelques explications sur le script Perl du minigrep (disponible ici)

Cependant, avant de commencer à utiliser ce script, il est nécessaire d'installer un module qui gère les traitements d'encodage en unicode. Vous aurez de très claires explications ICI.

Voici comment nous avons fait pour inclure le script Perl dans notre script principal en Bash pour la recherche de motifs dans leurs contextes (quelle que soit la langue traitée, le script opère automatiquement pour chacune des langues travaillées grâce à l'inclusion de variables dans le script Perl).



Nous avons créé une variable "$extraction" qui va contenir la valeur du quatrième argument qui sera passé à la commande d'exécution du script Perl "mini-grep-multilingue", autrement dit, en affectant à cette variable la valeur $ARGV[3], la variable "$extraction" contiendra la valeur qui sera contenue dans l'argument placé en quatrième position lors de l'appel du script dans le shell.



L'image ci-dessus représente l'inclusion du script Perl dans le script Bash et on voit que le quatrième argument est une variable ("$repContextes"). Donc lors de l'éxécution du script Perl, la valeur de "$repContextes" sera contenue dans la variable ARGV[3] qui sera elle-même contenue dans la variable "$extraction". Ensuite, nous avons placé cette variable "$extraction" dans la variable $fileout (qui contenait à l'origine le nom du fichier HTML créé, mais le problème c'est qu'il écrasait le dernier fichier HTML après une nouvelle exécution du script). De cette manière, on peut enregistrer toutes les pages contenant les contextes des motifs recherchés pour chacune des langues sans écraser les fichiers précédents. Voici comment nous l'avons intégré dans le script Perl :



L'image suivante illustre la manière dont nous avons procédée pour compter le nombre d'occurrences à l'aide du script Perl ainsi que pour relever la forme recherchée (est-ce un motif français, anglais ou japonais ?). Pour cela nous avons juste créé la variable (type int; entier) $nombreOccurrence pour relever la totalité des occurrences du motif recherché dans chaque page traitée selon la langue. Nous avons ainsi incrémenté cette variable lorsqu'un motif est reconnu. Puis on l'imprime sur la sortie standard lors de l'exécution du script dans le shell. La variable $motif que l'on imprime également nous permettra alors de savoir de quel motif il s'agit.





Problème rencontré :

Après l'exécution du script principal en Bash, dans notre tableau de liens, nous avons observé que les accents contenus dans le motif ne s'affichaient pas correctemment. Nous avons donc vérifié l'encodage du fichier... il était en effet encodé en latin 1 (ISO-8859-1). Il a fallu modifier l'encodage du fichier contenant le motif.

Solution :

- soit le logiciel qui permet d'écrire les lignes de code a une fonction permettant de modifier l'encodage du fichier (comme Notepadd++ pour Windows)
- soit copier les lignes de code dans un autre logiciel puis enregistrer le fichier dans le format souhaité (ici UTF-8; comme Gedit pour Linux).