Script final utilisé pour générer le tableau :
#!/bin/bash read REP; read tablo; read motif; echo "<html><head> <meta charset=\"utf-8\"/><title>Tableaux de liens</title></head><body>" > $tablo; echo "<p align=\"center\"><hr color=\"4682B4\" width=\"50%\"/></p>" >> $tablo; j=1; for fic in `ls $REP` do nbdump=0; echo "<table align=\"center\" width=\"75%\" border=\"2\" bordercolor=\"6495ED\"><tr><td colspan=\"9\" align=\"center\" bgcolor=\"4682B4\"><font color=\"white\"><b>Tableau n° $j, $(basename $fic .txt)</b></font></td></tr>" >> $tablo; echo "<tr align=\"center\" bgcolor=\"6495ED\"><td>N°URL</td><td>URL</td><td>Page aspirée</td><td>Retour curl</td><td>Dump-text initial</td><td>Dump-text utf-8</td><td>Contexte .txt</td><td>Contexte .html</td></tr>" >> $tablo; i=1; mkdir ../PAGES-ASPIREES/$j; mkdir ../DUMP-TEXT/$j; mkdir ../CONTEXTES/$j; mkdir ../FICHIERGLOBAUX; for nom in `cat $REP/$fic` do #------------------------------ CURL ---------------------------------------# #on récupère les pages aspirées curl $nom -o ../PAGES-ASPIREES/$j/$i.html; # on récupère les erreurs grace à $controlcurl. retourcurl=$? controlcurl=$(egrep -i -o --max-count=1 "Bad request|Service Unavailable|404 Not Found|Not Acceptable|The document has moved" ../PAGES-ASPIREES/$j/$i.html | sort -u); if [ "$controlcurl" != "" ] then echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"300\"><a href=\"$nom\">Lien $(basename $fic .txt) n°$i</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">Page aspirée</a></td><td align=\"center\" bgcolor=\"CD5C5C\" width=\"50\">$controlcurl</td><td align=\"center\" width=\"100\">-</td><td align=\"center\" width=\"100\">-</td><td align=\"center\" width=\"100\">-</td><td align=\"center\" width=\"100\">-</td></tr>" >> $tablo; else #------------------------------ LYNX & ICONV--------------------------------# # file permet de déterminer l'encodage du fichier. Cette valeur est attribuée à la variable encodage encodage=$(file -i ../PAGES-ASPIREES/$j/$i.html | cut -f2 -d=); echo $encodage; # on vérifie si dans encodage c'est bien la valeur utf-8 if [ $encodage = "utf-8" ] then lynx -dump -nolist -display_charset=$encodage ../PAGES-ASPIREES/$j/$i.html > ../DUMP-TEXT/$j/$i-utf8.txt; egrep -i "$motif" ../DUMP-TEXT/$j/$i-utf8.txt > ../CONTEXTES/$j/$i-utf8.txt; perl ./minigrep/minigrepmultilingue.pl "UTF-8" ../DUMP-TEXT/$j/$i-utf8.txt ./minigrep/motif.txt; mv resultat-extraction.html ../CONTEXTES/$j/$i-utf8.html; echo "Ok 0" echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"300\"><a href=\"$nom\">Lien $(basename $fic .txt) n°$i</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">Page aspirée</a></td><td align=\"center\" width=\"50\">$retourcurl</td><td align=\"center\" width=\"100\">-</td><td align=\"center\" bgcolor=\"9ACD32\" width=\"100\"><a href=\"../DUMP-TEXT/$j/$i-utf8.txt\">Dump utf-8</a></td><td align=\"center\" width=\"100\"><a href=\"../CONTEXTES/$j/$i-utf8.txt\">Contexte .txt</a></td><td align=\"center\" width=\"100\"><a href=\"../CONTEXTES/$j/$i-utf8.html\">Contexte .html</a></td></tr>" >> $tablo; cat ../CONTEXTES/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/CONTEXTES-GLOBAUX_$j.txt; cat ../DUMP-TEXT/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/DUMP-GLOBAUX_$j.txt; let "nbdump+=1"; # si la valeur de encodage n'est pas utf-8, on va utiliser la commande iconv pour modifier l'encodage du fichier. else # Sera stocké dans la variable verif_iconv : soit l'encodage du fichier (autre que utf-8) si il est connu par iconv, soit rien si l'encodage n'est pas connu. verif_iconv=`iconv -l | egrep -io $encodage`; # si l'encodage est reconnu par iconv on fait : if [ "$verif_iconv" != "" ] then lynx -dump -nolist -display_charset=$encodage ../PAGES-ASPIREES/$j/$i.html > ../DUMP-TEXT/$j/$i.txt; iconv -f $encodage -t utf-8 "../DUMP-TEXT/$j/$i.txt" > "../DUMP-TEXT/$j/$i-utf8.txt"; egrep -i "$motif" ../DUMP-TEXT/$j/$i-utf8.txt > ../CONTEXTES/$j/$i-utf8.txt; perl ./minigrep/minigrepmultilingue.pl "UTF-8" ../DUMP-TEXT/$j/$i-utf8.txt ./minigrep/motif.txt; mv resultat-extraction.html ../CONTEXTES/$j/$i-utf8.html; echo "Ok 1" echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"300\"><a href=\"$nom\">Lien $(basename $fic .txt) n°$i</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">Page aspirée</a></td><td align=\"center\" width=\"50\">$retourcurl</td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TEXT/$j/$i.txt\">Dump initial</a><br/>$encodage</td><td align=\"center\" bgcolor=\"9ACD32\" width=\"100\"><a href=\"../DUMP-TEXT/$j/$i-utf8.txt\">Dump utf-8</a></td><td align=\"center\" width=\"100\"><a href=\"../CONTEXTES/$j/$i-utf8.txt\">Contexte .txt</a></td><td align=\"center\" width=\"100\"><a href=\"../CONTEXTES/$j/$i-utf8.html\">Contexte .html</a></td></tr>" >> $tablo; cat ../CONTEXTES/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/CONTEXTES-GLOBAUX_$j.txt; cat ../DUMP-TEXT/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/DUMP-GLOBAUX_$j.txt; let "nbdump+=1"; # si iconv ne reconnait pas l'endocage on peut s'aider de la balise meta des pages html. else #si on trouve charset dans le code alors on peut continuer if egrep -qi ".*charset?=.*" ../PAGES-ASPIREES/$j/$i.html then #une fois charset trouvé on isole ce qui se trouve après le = charset_line=$(egrep -m 1 "charset=.*\"" ../PAGES-ASPIREES/$j/$i.html); # une fois isolé ce qu'il y a après le =, il faut retirer les caractères APRÈS la valeur de l'encodage : charset=$(expr "$charset_line" : '.*=\(.*\)\"'); #une fois la valeur de l'encodage extraite, il faut vérifier que iconv la reconnait pour pouvoir la modifier : verif_iconv=`iconv -l | egrep -io $charset`; if [ "$verif_iconv" != "" ] then lynx -dump -nolist -display_charset=$charset ../PAGES-ASPIREES/$j/$i.html > ../DUMP-TEXT/$j/$i.txt; iconv -f $charset -t utf-8 "../DUMP-TEXT/$j/$i.txt" > "../DUMP-TEXT/$j/$i-utf8.txt"; egrep -i "$motif" ../DUMP-TEXT/$j/$i-utf8.txt > ../CONTEXTES/$j/$i-utf8.txt; perl ./minigrep/minigrepmultilingue.pl "UTF-8" ../DUMP-TEXT/$j/$i-utf8.txt ./minigrep/motif.txt; mv resultat-extraction.html ../CONTEXTES/$j/$i-utf8.html; echo "Ok 2" echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"300\"><a href=\"$nom\">Lien $(basename $fic .txt) n°$i</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">Page aspirée</a></td><td align=\"center\" width=\"50\">$retourcurl</td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TEXT/$j/$i.txt\">Dump initial</a><br/>$encodage</td><td align=\"center\" bgcolor=\"9ACD32\" width=\"100\"><a href=\"../DUMP-TEXT/$j/$i-utf8.txt\">Dump utf-8</a></td><td align=\"center\" width=\"100\"><a href=\"../CONTEXTES/$j/$i-utf8.txt\">Contexte .txt</a></td><td align=\"center\" width=\"100\"><a href=\"../CONTEXTES/$j/$i-utf8.html\">Contexte .html</a></td></tr>" >> $tablo; cat ../CONTEXTES/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/CONTEXTES-GLOBAUX_$j.txt; cat ../DUMP-TEXT/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/DUMP-GLOBAUX_$j.txt; let "nbdump+=1"; else lynx -dump -nolist -display_charset=$charset ../PAGES-ASPIREES/$j/$i.html > ../DUMP-TEXT/$j/$i.txt; echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"300\"><a href=\"$nom\">Lien $(basename $fic .txt) n°$i</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">Page aspirée</a></td><td align=\"center\" width=\"50\">$retourcurl</td><td align=\"center\" bgcolor=\"CD5C5C\" width=\"100\"><a href=\"../DUMP-TEXT/$j/$i.txt\">Dump initial</a><br/>$encodage</td><td align=\"center\" width=\"100\">-</td><td align=\"center\" width=\"100\">-</td><td align=\"center\" width=\"100\">-</td></tr>" >> $tablo; fi else lynx -dump -nolist -display_charset=$charset ../PAGES-ASPIREES/$j/$i.html > ../DUMP-TEXT/$j/$i.txt; echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"300\"><a href=\"$nom\">Lien $(basename $fic .txt) n°$i</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">Page aspirée</a></td><td align=\"center\" width=\"50\">$retourcurl</td><td align=\"center\" bgcolor=\"CD5C5C\" width=\"100\"><a href=\"../DUMP-TEXT/$j/$i.txt\">Dump initial</a><br/>$encodage</td><td align=\"center\" width=\"100\">-</td><td align=\"center\" width=\"100\">-</td><td align=\"center\" width=\"100\">-</td></tr>" >> $tablo; fi fi fi #------------------------------ LYNX & ICONV--------------------------------# fi #------------------------------ CURL ---------------------------------------# let "i+=1"; done echo "<tr><td align=\"center\" colspan=\"5\" bgcolor=\"silver\"> </td><td align=\"center\" width=\"100\"><a href="../FICHIERGLOBAUX/DUMP-GLOBAUX_$j.txt">Fichier DUMP<br/>global</a><br/><small>$nbdump fichier(s)</small></td><td align=\"center\" width=\"100\"><a href="../FICHIERGLOBAUX/CONTEXTES-GLOBAUX_$j.txt">Fichier CONTEXTES<br/>global</a><br/><small>$nbdump fichier(s)</small></td><td align=\"center\" bgcolor=\"silver\"> </td></tr>" >> $tablo; echo "</table>" >> $tablo; let "j+=1"; echo "<p align=\"center\"><hr color=\"4682B4\" width=\"50%\"/></p>" >> $tablo; done echo "</body></html>" >> $tablo;
À propos
Nous sommes deux étudiantes en première année de master d'ingénierie linguisitque, Uta Hosokawa et Marine Cotereau. Nous sommes déjà diplômées d'une licence de sciences du langage à Paris X.