SCRIPT N°1
********************DEBUT DU
PROGRAMME*******************
#!/bin/bash
*************SAISIE
DES DONEES PAR L'UTILISATEUR************
echo "Donnez le nom du dossier contenant les fichiers de liens http : "
read dossier
echo "Donnez le nom du fichier html où stocker ces liens
dans des tableaux : "
read tablo
echo "Donne le nom du fichier contenant le motif recherché
sur les pages originales : "
read motif
************DEBUT DU
FICHIER HTML*************************
echo
"<html><head><title>tableau
de
liens</title></head><body>"
> $tablo
i=1
*******DEBUT DE LA
BOUCLE PRINCIPALE:lecture des fichiers*******
for fichier in `ls $dossier`
{
*******CONSTRUCTION
DES BORDURES DU TABLEAU**************
echo "<table border=1>" >> $tablo
echo "<tr><td
align="center"
bgcolor=\"silver\" colspan=\"4\"><b>Fichier
$fichier</b></td></tr>"
>> $tablo
******DEBUT DE LA
BOUCLE IMBRIQUEE: lecture des URLS**********
for nom in `cat $dossier/$fichier`
{
echo "voici le nom de FICHIER " $nom
********************ASPIRATION
DES FICHIERS****************
wget -O ./PAGESASPIREES1/$i.html $nom
*********************DUMPER
LES PAGES*********************
lynx -dump $nom > ./DUMP1/$i.txt
********RECHERCHE DU
MOTIF ET FILTRAGE DU CONTEXTE*********
egrep -i "\b$motif\b" ./DUMP1/$i.txt
> ./CONTEXTE1/$i.txt
echo
"<tr><td><a
href=\"$nom\">$nom</a></td><td><a
href=\"./PAGESASPIREES1/$i.html\">PAGE
ASPIREE</a></td><td><a
href=\"./DUMP1/$i.txt\">PAGE
DUMP</a></td><td><a
href=\"./CONTEXTE1/$i.txt\">PAGE
CONTEXTE</a></td></tr>"
>> $tablo
let "i+=1"
}
******************FIN
DE LA BOUCLE IMBRIQUEE***************
echo "</table>" >> $tablo
echo "<br>"
>> $tablo
}
*****************FIN DE LA
BOUCLE PRINCIPALE****************
echo
"</body></html>" >> $tablo
*************************FIN
DU CODE**********************
SCRIPT N°2
*********************DEBUT
DU PROGRAMME******************
#!/bin/bash
*************SAISIE
DES DONNEES PAR L'UTILISATEUR***********
echo "Donnez le nom du
dossier contenant les fichiers de liens http : "
read dossier
echo "Donnez le nom du
fichier html o stocker ces liens dans des tableaux : "
read tablo
************DEBUT DU
FICHIER HTML*************************
echo
"<html><head><title>tableau
de
liens</title></head><body>"
> $tablo
i=1
for fichier in `ls
$dossier`
{
echo "<table border=1>" >> $tablo
echo "<tr><td align="center" bgcolor=\"silver\"
colspan=\"4\"><b>Fichier
$fichier</b></td></tr>"
>> $tablo
for nom in `cat $dossier/$fichier`
{
echo "voici le nom de
FICHIER " $nom
***********POUR UTILISER LES PAGES ASPIREES RECUPEREES VIA LE PREMIER
SCRIPT ET POUR NE PAS LES ECRASER NOUS METTONS WGET EN
COMMENTAIRE*******************************************
#wget -O ./PAGESASPIREES1/$i.html $nom
***********POUR
UTILISER LES PAGES DUMP RECUPEREES VIA LE PREMIER SCRIPT ET POUR NE
PAS LES ECRASER NOUS METTONS LYNX EN
COMMENTAIRE******************************************
#lynx -dump $nom > ./DUMP1/$i.txt
**********UTILISATION DU
PROGRAMME PERL POUR EXTRAIRE LES MOTIFS EN JAPONAIS. IL
S'UTILISE AINSI : perl mini-grep-multilingue.pl
\"UTF-8\" RU_Convention_UTF8.txt
motif.txt***************************************************
perl
./PROGRAMMES1/mini-grep-multilingue.pl "UTF-8" ./DUMP1/$i.txt
./PROGRAMMES1/motifjaponais.txt
mv resultat-extraction.html
./CONTEXTE/$i.html
echo "<tr><td><a
href=\"$nom\">$nom</a></td><td><a
href=\"./pagesaspirees1/$i.html\">PAGE
ASPIREE</a></td><td><a
href=\"./DUMP1/$i.txt\">PAGE
DUMP</a></td><td><a
href=\"./CONTEXTE/$i.html\">PAGE
CONTEXTE</a></td></tr>"
>> $tablo
let "i+=1"
}
******************FIN
DE LA BOUCLE IMBRIQUEE***************
echo "</table>" >> $tablo
echo "<br>" >> $tablo
}
*****************FIN DE LA
BOUCLE PRINCIPALE****************
echo
"</body></html>" >> $tablo
*************************FIN
DU CODE**********************
SCRIPT
PERL
*******************NOUS
AVONS UTILISE CE SCRIPT POUR EXTRAIRE LES MOTIFS EN JAPONAIS.
CEPENDANT,
NOUS AVONS PLUSIEURS MOTIFS DIFFERENTS DONC NOUS AVONS CHANGE LA LIGNE
65 DU SCRIPT:
$formein=~/MOTIF=(\w+)$/;************************************
#!/usr/bin/perl
use locale;
use English;
use Getopt::Std;
use Encode::Encoding;
use Encode::CN;
use Encode::KR;
use Encode::TW;
use Encode::JP;
use Unicode::String qw(utf8);
my $VERSION="2.0";
my $CMD="minigrepmultilingue";
my $MODIFIED="16/12/2007";
my $HELP="
_______________________________________________________________
$CMD $VERSION (c) Serge Fleury, Pierre Marchal SYLED/CLA2T PLURITAL
$MODIFIED
_______________________________________________________________
OBJECTIF : un mini-grep-multilingue
SYNTAXE : $CMD [options]
<fichier-codage> <fichier-a-filtrer>
<fichier-avec-motif>
OPTIONS :
-h
imprime le mode d'emploi de ce programme
EXEMPLES:
perl mini-grep-multilingue.pl \"UTF-8\"
RU_Convention_UTF8.txt motif.txt
________________________________________________________________
";
##################################################
# parse command line
##################################################
getopts('hdt');
if (defined($opt_h)) {
print STDERR "$HELP";
exit(1);
}
#----------------------------------------------------------------------------
if ((!($ARGV[0])) || (!($ARGV[1])) || (!($ARGV[2]))) {
print
"___________________________________________________\n\nERREUR : Le
programme necessite 3 arguments : \n 1. un encodage,\n 2. un fichier a
filtrer,\n 3. un fichier contenant le motif à filtrer \n\n";
print "Exemple de lancement : \n";
print
"________________________________________________________\n\n";
print "perl mini-grep-multilingue.pl
\"UTF-8\" RU_Convention_UTF8.txt motif.txt \n\n";
exit;
}
##################################################
# A. Lecture des arguments du programme
my $tmpcodage=$ARGV[0];
chomp($tmpcodge);
my $filein=$ARGV[1];
print "Fichier en entree : $filein \n";
my $filewithforme=$ARGV[2];
my $fileout="resultat-extraction.html";
##################################################
print "extraction du motif...\n";
# B. le fichier contenant la forme à extraire
open(FILE0,"<:encoding($tmpcodage)",$filewithforme) or die "Pb
sur l'ouverture du fichier $filewithforme !!! ";
my $formein=<FILE0>;
chomp($formein);
$formein=~/MOTIF=(.+)$/;
my $forme=$1;
utf8($forme);
#print "Forme a rechercher : $forme \n";
close(FILE0);
##################################################
my $points="...";
utf8($points);
##################################################
print "extraction de la forme et ecriture du resultat dans $fileout \n";
# C. Parcours du fichier et extraction du motif
open(FILEIN,"<:encoding($tmpcodage)",$filein) or die
"Pb sur l'ouverture du fichier $filein !!! ";
open(FILEOUT,">:encoding(UTF-8)",$fileout) or die "Pb
sur l'ouverture du fichier $fileout !!! ";
print FILEOUT
"<html>\n<head>\n<title>mini-egrep
multi-encodage pour le projet : la vie des mots sur le
web</title>\n";
print FILEOUT "<meta http-equiv=\"Content-Type\"
content=\"text/html; charset=utf8\" />\n";
print FILEOUT "<body bgcolor=\"white\">\n";
print FILEOUT "<p align=\"justify\"><font
color=\"blue\"><b>Fichier de travail (INPUT)
:</b></font> $filein </p>\n";
print FILEOUT "<p align=\"justify\"><font
color=\"blue\"><b>Encodage utilisé
(INPUT) :</b></font> $tmpcodage
</p>\n";
print FILEOUT "<p align=\"justify\"><font
color=\"blue\"><b>Forme recherchée
:</b></font> <font
color=\"red\">$forme</font> </p>\n";
print FILEOUT "<font
color=\"blue\">___________________________________________________
</font>\n";
my $i=1;
print FILEOUT "<blockquote>\n";
print FILEOUT "<ul>\n";
my $verif=0;
my $ligne_haut;
while (my $ligne=<FILEIN>) {
utf8($ligne);
# si la ligne precedente contenait le
motif on l'imprime : contexte apres
if ($verif == 1) {
unless ($ligne=~/^\s*$/) {
print
FILEOUT "<font color=\"#3366CC\"><i>Ligne
n°",$i,"</i></font> : <font
color=\"#3366CC\"><i>$ligne$points</i></font>";
print
FILEOUT "<br/>";
}
$verif=0;
}
while ($ligne =~/$forme/g) {
my $gauche = $`;
my $droite = $';
my $test=0;
# si le motif est trouve, il faut
affiche 1 seule fois le contexte precedent stocke (cf infra)
if (($ligne_haut ne
"-------LIGNE_HAUT_DEJA_INSEREE----------------") &&
($ligne_haut ne "")) {
print
FILEOUT "<br/><font
color=\"#3366CC\"><i>Ligne
n°",$i-1,"</i></font> :
<font
color=\"#3366CC\"><i>".$points.$ligne_haut."</i></font>";
$test=1;
$ligne_haut="-------LIGNE_HAUT_DEJA_INSEREE----------------";
}
unless ($test == 1) {
print
FILEOUT "<br/>"; #imprimer un retour à la
ligne si ligne du haut non affichée
}
print FILEOUT
"<li><font
color=\"blue\"><b>Ligne
n°$i</b></font> :
$gauche<font
color=\"red\"><b>$forme<\/b><\/font>$droite
</li>";
$verif=1;
}
# on stocke la ligne qui peut devenir le
contexte precedent la prochaine recherche du motif
if ($ligne=~/^$/) {
$ligne_haut="";
}
else {
$ligne_haut=$ligne;
}
$i++;
}
print FILEOUT "</ul>\n";
print FILEOUT "</blockquote>\n";
print FILEOUT "</html></body>";
#################################################
close(FILEIN);
close(FILEOUT);
#################################################
**********************************************************
MOTIF:
"|" EQUIVAUT A OU**************************************
MOTIF=バゲット|箸|棒|スティック