C'est l'heure : les codes

Publié le 1/10/2015 3:11, par - Groupe de la vie du mot Liberté

Création des fichiers nécessaires :

 

Comme la première étape on essaie de créer une ambiance pour enregistrer les données suivantes. Tout simplement on a utilisé le mot clé ‘mkdir’ pour les fichiers.


Featured image

 

Selon la page du cours et pour la connaissance de ceux qu’ils ne sont pas dans le cours :

- le dossier CONTEXTES regroupe les fichiers issus de l'extraction contextuelle par egrep des mots traités dans les fichiers du dossier DUMP-TXT.
- le dossier DUMP-TEXT regroupe les fichiers issus du traitement par lynx sur les pages aspirées du dossier PAGES-ASPIREES.
- le dossier PAGES-ASPIREES regroupe les fichiers issus de l'"aspiration" par wget des URLs contenues dans - - les fichiers situés dans le dossier URLs.
- le dossier PROGRAMMES regroupe l'ensemble des scripts construits pour ce projet.
- le dossier TABLEAUX regroupe l'ensemble des tableaux construits par les scripts, ces tableaux regroupant in fine 4 colonnes : l'url initiale, la page aspirée, le dump textuel, le contexte.
- le dossier URLs regroupe le ou les fichiers contenant les URLs à traiter etc.


Premier script : créer un tableau de liens

 

L’objectif de cette étape du projet et de lire un fichier contenant une liste d'URL et produire un fichier HTML contenant un tableau (à 1 colonne) regroupant ces URLs.


Code :

			echo "Le fichier d'URL, SVP :";
			read REP;
			echo "Quel tableau à s'enregistrer les liens ?";
			read tableau;
			echo "<html><head><title>Tableaux de liens - Liberte</title></head><body>" > $tableau;
			echo "<p align=\"center\"><hr color=\"ForestGreen \" width=\"90%\"/></p>" >> $tableau; 
			i=1;
			for fic in `ls $REP`
			{
				echo "<table align=\"center\" border=\"1\"><tr><td colspan=\"2\" align=\"center\" bgcolor=\"black\"><font color=\"white\"><b>Tableau $i</b></font></td></tr>" >> $tableau; 
				# Variable i pour compter les URLs
				j=1;
				for nom in `cat $REP/$fic` 
				{
					echo "<tr><td align=\"center\" width=\"90\">$j</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td></tr>" >> $tableau;
					let "j+=1"; 
				}
				echo "</table>" >> $tableau; 
				let "i+=1"; 
				echo "<p align=\"center\"><hr color=\"ForestGreen \" width=\"90%\"/></p>" >> $tableau;
			}
			echo "</body></html>" >> $tableau; 
			echo "Done successfully!";
		

 

Second script : créer un tableau de liens avec des liens externes vers les pages visées et des liens internes vers les pages correspondantes aspirées.
Featured image

 

L’objectif de cette étape est de lire un fichier contenant une liste d'URL, produire un fichier HTML contenant  un tableau (à 2 colonnes) regroupant :

- ces URLs
- les pages aspirées correspondantes. Etablir les liens vers les 2 ressources (URL, page locale).

Codes :

		#!/bin/bash
		echo "Donnez le nom du fichier contenant les liens http : "; 
		read fic; 
		echo "Donnez le nom de fichier html où stocker ces liens : "; 
		read tableau; 
		echo "<html><head><title>Tableau des liens - Liberte</title></head><body><table border=1>" > $tableau; 
		i=1
		for nom in `cat $fic` 
		{
		wget -o ./PAGES-ASPIREES/$i.html $nom
		echo "<tr><td><a href=\"$nom\">$nom</a></td><td><a href=\"../PAGES-ASPIREES/$i.html\">PAGE ASPIREE</a></td></tr>" >> $tableau; 
		let "i+=1" ;
		}
		echo "</table></body></html>" >> $tableau; 
		echo "Done successfully!";

		
		

- Troisième script : un tableau de liens avec 3 colonnes (URL, fichier aspiré, dump)

 

L’objectif de cette partie est de lire un fichier contenant une liste d'URL, produire un fichier HTML contenant un tableau (à 3 colonnes)  regroupant :

Featured image
- Ces URLs
- les pages aspirées correspondantes
- les DUMPS des pages aspirées obtenus avec lynx. Etablir les liens vers les 3 ressources (URL, page locale, dump).

 

Le défi de cette étape est que le fichier dump devra être converti en utf8 ; C’est-à-dire su nécessaire conversion d'encodage en utf8.


Codes :

		echo "Donnez le nom du dossier : "; 
		read REP; 
		echo "Donnez le nom de fichier html où stocker ces liens : "; 
		read tablo; 
		echo "<html><head><title>tableaux de liens</title>" > $tablo;
		echo "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=ISO-8859-1\" /> " >> $tablo;
		echo "<style>" >> $tablo;
		echo "h1, h2, h3, p, td { font-family: Calibri, Verdana,sans-serif; } " >> $tablo;
		echo "h4, h5 { margin: 0px; padding: 0px; } " >> $tablo;
		echo "h1 {color: #000060; font-size: 16pt; font-weight: bold;} " >> $tablo;
		echo "h2 {color: #000060; font-size: 14pt; font-weight: bold;} " >> $tablo;
		echo "h3 {color: #000060; font-size: 12pt; font-weight: bold;} " >> $tablo;
		echo "a:visited {text-decoration: none;color: blue;}" >> $tablo;
		echo "a:link {text-decoration: none;color: blue;}" >> $tablo;
		echo "a:hover{text-decoration: none;color: red;}" >> $tablo;
		echo "</style>" >> $tablo;
		echo "</head><body bgcolor=\"silver\">" >> $tablo;
		eecho "<div style='border:solid windowtext .75pt;padding:4.0pt 4.0pt 4.0pt 4.0pt;background:#D7D5D2;margin-left:80px;margin-right:80px;'><blockquote>" >> $tablo;
		echo "<h3><span style='background-color:#FC3;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90;'>Les TABLEAUX de données</span></h3>" >> $tablo; 
		#Variable pour compter les tableaux
		j=1;
		for fic in `ls $REP`
		{ 
		echo "<table bgcolor=\"white\" align=\"center\" border=\"1\"><tr><td colspan=\"7\" align=\"center\" bgcolor=\"black\"><font color=\"white\"><h4><b>Tableau n° $j</b></h4></font><small><span style='background-color:silver;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90;'>fichier : $fic</span></small></td></tr>" >> $tablo; 
		echo "<tr><td align=\"center\" width=\"50\"><b>n°URL</b></td><td align=\"center\" width=\"100\"><b>URL</b></td><td align=\"center\" width=\"100\"><b>PAGES ASPIREES</b></td><td align=\"center\" width=\"20\"><b>Ret. CURL</b></td><td align=\"center\" width=\"100\"><b>DUMP initial</b><br/><small>(non utf-8)</small></b></td><td align=\"center\" width=\"100\"><b>DUMP utf-8</b></td></tr>" >> $tablo;
		# Variable i pour compter les URLs
		i=1;
		nbdump=0;
		mkdir -p CONTEXTES/$j ;
		mkdir -p DUMP-TEXT/$j ;
		mkdir -p PAGES-ASPIREES/$j ;
		for nom in `cat $REP/$fic` 
		{
	    echo "================================================================";
	    echo "==========TRAITEMENT : $nom ";
            #------- on CURL et on determine l'encodage -----------------------------------------
	    curl -o ./PAGES-ASPIREES/$j/$i.html  "$nom";
	    retourcurl=$? ;
		contenupageaspiree=$(egrep -i -o "(400 )?Bad request|Moved Permanently|s interdit" ./PAGES-ASPIREES/$j/$i.html | sort -u);
		if [[ $contenupageaspiree != "" ]]
			then
				retourcurl="<small>$retourcurl<br/>$contenupageaspiree</small>";
		fi
	    echo "RETOUR CURL : $retourcurl";
        if [[ $retourcurl == 0 ]] 
			then
				encodage=$(file -i ./PAGES-ASPIREES/$j/$i.html | cut -d= -f2);
				echo "ENCODAGE initial : $encodage";
				#------- on continue en tenant compte de l'encodage fourni par curl---------------------
				if [[ $encodage == "utf-8" ]]
					then
						lynx -dump -nolist -display_charset=$encodage ./PAGES-ASPIREES/$j/$i.html  > ./DUMP-TXT/$j/$i-utf8.txt ;
						echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\"> - </td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TXT/$j/$i-utf8.txt\">$i-utf8.txt</a></td></tr>" >> $tablo;
					else
						#-----------------------------------------------------
						# la page n'est pas en utf-8, on cherche un charset...
						#-----------------------------------------------------echo "on cherche un charset dans la page aspiree...";
						if egrep -qi "(charset ?=.*?(\"|\')|encoding ?=.*?(\"|\'))" ./PAGES-ASPIREES/$j/$i.html ; 
							then 
								#----------------------------------------------
								# on a peut-etre trouve un charset.....
								#----------------------------------------------
								echo "Presence d'un charset...";
								encodage=$(egrep -m 1 -o '(((utf|UTF)-(8|16|32))|(gb|GB)(k|K|2312|18030)|(iso|ISO|Iso)-8859-(\w)(\w)?|(WINDOWS|windows)-1252|(WINDOWS|windows)-1256|((m|M)(a|A)(c|C)(R|r)(O|o)(M|m)(a|A)(n|N))|us-ascii)' ./PAGES-ASPIREES/$j/$i.html | sort -u) ;
								echo "charset extrait : $encodage ";
								#-------------------------------------------------------------------
								# avant de continuer on va vérifier si le charset est connu de iconv
								#-------------------------------------------------------------------
								VERIFENCODAGEDANSICONV=$(iconv -l | egrep -io $encodage | sort -u);
								if [[ $VERIFENCODAGEDANSICONV == "" ]]
									then
										#-------------------------------------------
										# le charset n'est pas connu de iconv : on fait rien....
										#-------------------------------------------
										echo "VERIF : <$VERIFENCODAGEDANSICONV> ==> inconnu par inconv, on ne fait rien"
										echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td></tr>" >> $tablo;
									else
										#-------------------------------------------
										# le charset extrait est connu de iconv : on lynxe et on dump !!!
										#-------------------------------------------
										echo "VERIF : <$VERIFENCODAGEDANSICONV> ==> connu par inconv, c'est parti ==> lynx, iconv..."
										lynx -dump -nolist -display_charset=$encodage ./PAGES-ASPIREES/$j/$i.html  > ./DUMP-TXT/$j/$i.txt ;
										echo "ENCODAGE final : $encodage (avant conversion vers utf-8)";
										iconv -f $encodage -t utf-8 ./DUMP-TXT/$j/$i.txt > ./DUMP-TXT/$j/$i-utf8.txt
										echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TXT/$j/$i.txt\">$i.txt</a><br/><small>($encodage)</small></td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TXT/$j/$i-utf8.txt\">$i-utf8.txt</a></td></tr>" >> $tablo;
								fi
							else 
								echo "Pas de charset detecte : on ne fait rien pour le DUMP... ";
								echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td></tr>" >> $tablo;
						fi  
				fi
          # fin curl OK
          else
			echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\" bgcolor=\"red\">Page non aspiree...</td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\" bgcolor=\"red\"><small>Page<br/>non \"aspirée\"</small></td><td align=\"center\" width=\"100\" bgcolor=\"red\"><small>Page<br/>non \"aspirée\"</small></td></tr>" >> $tablo;
        fi
	  let "i+=1"; 
	}
	echo "</table>" >> $tablo; 
	let "j+=1"; 
	echo "<p align=\"center\"><hr color=\"blue\" width=\"50%\"/></p>" >> $tablo;
}
echo "</body></html>" >> $tablo; 
		
		
		

 

Quatrième script : plusieurs tableaux de liens avec 3 colonnes (URL, fichier aspiré, dump)



 

Ce qu’on va faire dans cette section est de lire un (ou plusieurs) fichier(s) contenant une liste d'URL, produire un fichier HTML contenant un (ou plusieurs) tableau(x)  (à 3 colonnes chacun) regroupant :

- Ces URLs
- Les pages aspirées correspondantes
- Les DUMPS des pages aspirées obtenus avec lynx. Etablir les liens vers les 3 ressources (URL, page locale, dump)


Codes :

		#!/bin/bash
		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 "<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=\"3\"><b>Fichier $fichier</b></td></tr>" >> $tablo;
			for nom in `cat $dossier/$fichier` 
			{
			wget -O ./PAGES-ASPIREES/$i.html $nom
			lynx -dump $nom > ./DUMP-TEXT/$i.txt
			echo "<tr><td><a href=\"$nom\">$nom</a></td><td><a href=\"../PAGES-ASPIREES/$i.html\">PAGE ASPIREE</a></td><td><a href=\"../DUMP-TEXT/$i.txt\">PAGE DUMP</a></td></tr>" >> $tablo; 
			let "i+=1" ;
			}

			echo "</table>" >> $tablo;
			echo "<br>" >> $tablo;

		}
		echo "</body></html>" >> $tablo;

		
		
		

 

Cinquième script : plusieurs tableaux de liens avec 4 colonnes (URL, fichier aspiré, dump, contextes)


 

L’objectif de cette partie est de lire un (ou plusieurs) fichier(s) contenant une liste d'URL, produire un fichier HTML contenant un (ou plusieurs) tableau(x) (à 4 colonnes chacun)  regroupant :

Featured image

- ces URLs
- les pages aspirées correspondantes
- les DUMPS des pages aspirées obtenus avec lynx
- les contextes obtenus avec egrep. Etablir les liens vers les 4 ressources (URL, page locale, dump, contexte)

Codes :

		echo "Donnez le nom du dossier : "; 
		read REP; 
		echo "Donnez le nom de fichier html où stocker ces liens : "; 
		read tablo; 
		echo "Quel est le motif ?";
		read motif;
		echo "<html><head><title>Tableaux de liens : La vie du mot Liberté</title>" > $tablo;
		echo "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=Unicode\\" /> " >> $tablo;
		echo "<style>" >> $tablo;
		echo "h1, h2, h3, p, td { font-family: Calibri, Verdana,sans-serif; } " >> $tablo;
		echo "h4, h5 { margin: 0px; padding: 0px; } " >> $tablo;
		echo "h1 {color: #000060; font-size: 16pt; font-weight: bold;} " >> $tablo;
		echo "h2 {color: #000060; font-size: 14pt; font-weight: bold;} " >> $tablo;
		echo "h3 {color: #000060; font-size: 12pt; font-weight: bold;} " >> $tablo;
		echo "a:visited {text-decoration: none;color: blue;}" >> $tablo;
		echo "a:link {text-decoration: none;color: blue;}" >> $tablo;
		echo "a:hover{text-decoration: none;color: red;}" >> $tablo;
		echo "</style>" >> $tablo;
		echo "</head><body bgcolor=\"silver\">" >> $tablo;
		echo "<div style='border:solid windowtext .75pt;padding:4.0pt 4.0pt 4.0pt 4.0pt;background:#D7D5D2;margin-left:80px;margin-right:80px;'><blockquote>" >> $tablo;
		echo "<h3><span style='background-color:#FC3;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90;'>Les Tableaux de données <br> Le motif : $motif </span></h3>" >> $tablo; 
		#Variable pour compter les tableaux
		j=1;
		for fic in `ls $REP`
		{ 
		echo "<table bgcolor=\"white\" align=\"center\" border=\"1\"><tr><td colspan=\"9\" align=\"center\" bgcolor=\"black\"><font color=\"white\"><h4><b>Tableau n° $j</b></h4></font><small><span style='background-color:silver;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90;'>fichier : $fic</span></small></td></tr>" >> $tablo; 
		echo "<tr><td align=\"center\" width=\"50\"><b>n°URL</b></td><td align=\"center\" width=\"100\"><b>URL</b></td><td align=\"center\" width=\"100\"><b>PAGES ASPIREES</b></td><td align=\"center\" width=\"20\"><b>Ret. CURL</b></td><td align=\"center\" width=\"100\"><b>DUMP initial</b><br/><small>(non utf-8)</small></b></td><td align=\"center\" width=\"100\"><b>DUMP utf-8</b></td><td align=\"center\" width=\"100\"><b>CONTEXTES</b></td><td align=\"center\" width=\"100\"><b>CONTEXTES<br/>HTML</b></td><td align=\"center\" width=\"100\"><b>NB Occur</b></td></tr>" >> $tablo;
		# Variable i pour compter les URLs
		i=1;
		nbdump=0;
		mkdir -p CONTEXTES/$j ;
		mkdir -p DUMP-TEXT/$j ;
		mkdir -p PAGES-ASPIREES/$j ;
		for nom in `cat $REP/$fic` 
		{
	    echo "================================================================";
	    echo "==========TRAITEMENT : $nom ";
            #------- on CURL et on determine l'encodage -----------------------------------------
	    curl -o ./PAGES-ASPIREES/$j/$i.html  "$nom";
	    retourcurl=$? ;
	    contenupageaspiree=$(egrep -i -o "(400 )?Bad request|Moved Permanently|s interdit|Not Acceptable" ./PAGES-ASPIREES/$j/$i.html | sort -u);
	    if [[ $contenupageaspiree != "" ]]
		then
		retourcurl="<span style='background-color:black;color:white;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90;'>$retourcurl<br/>BAD</span>";
	    fi
	    echo "RETOUR CURL : $retourcurl";
	    if [[ $retourcurl == 0 ]] 
		then
		encodage=$(file -i ./PAGES-ASPIREES/$j/$i.html | cut -d= -f2);
		echo "ENCODAGE initial : $encodage";
		#------- on continue en tenant compte de l'encodage fourni par curl---------------------
		if [[ $encodage == "utf-8" ]]
		    then
		    lynx -dump -nolist -display_charset=$encodage ./PAGES-ASPIREES/$j/$i.html  > ./DUMP-TXT/$j/$i-utf8.txt ;
		    egrep -i "\b$motif\b" ./DUMP-TXT/$j/$i-utf8.txt > ./CONTEXTES/$j/$i-utf8.txt ;
		    nbOccur=??;
		    nbOccur=$(egrep -o -i "\b$motif\b" ./DUMP-TXT/$j/$i-utf8.txt | wc -l );
		    perl ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/minigrepmultilingue.pl  "UTF-8" ./DUMP-TXT/$j/$i-utf8.txt ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/motif-regexp.txt ;
		    mv resultat-extraction.html ./CONTEXTES/$j/$i-utf8.html ;
		    echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\"> - </td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TXT/$j/$i-utf8.txt\">$i-utf8.txt</a></td><td align=\"center\" width=\"100\"><a href=\"../CONTEXTES/$j/$i-utf8.txt\">$i-utf8.txt</a></td><td align=\"center\" width=\"100\" ><a href=\"../CONTEXTES/$j/$i-utf8.html\">$i-utf8.html</a></td><td align=\"center\" bgcolor=\"yellow\"><span style='background-color:red;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90;'>$nbOccur</span></td></tr>" >> $tablo;
		    cat ./CONTEXTES/$j/$i-utf8.txt >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX_$j.txt ;
		    cat ./DUMP-TXT/$j/$i-utf8.txt >> ./FICHIERGLOBAUX/DUMP-GLOBAUX_$j.txt ;
		    let "nbdump+=1";
		    
		else
		    VERIFENCODAGEDANSICONV=$(iconv -l | egrep -io $encodage | sort -u);
		    if [[ $VERIFENCODAGEDANSICONV != "" ]]
			then
			#-------------------------------------------
			# le charset extrait est connu de iconv : on lynxe et on dump !!!
			#-------------------------------------------
			echo "VERIF : <$VERIFENCODAGEDANSICONV> ==> connu par inconv, c'est parti ==> lynx, iconv..."
			lynx -dump -nolist -display_charset=$encodage ./PAGES-ASPIREES/$j/$i.html  > ./DUMP-TXT/$j/$i.txt ;
			echo "ENCODAGE final : $encodage (avant conversion vers utf-8)";
			iconv -f $encodage -t utf-8 ./DUMP-TXT/$j/$i.txt > ./DUMP-TXT/$j/$i-utf8.txt
			egrep -i "\b$motif\b" ./DUMP-TXT/$j/$i-utf8.txt > ./CONTEXTES/$j/$i-utf8.txt ;
			nbOccur=??;
			nbOccur=$(egrep -o -i "\b$motif\b" ./DUMP-TXT/$j/$i-utf8.txt | wc -l );
			perl ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/minigrepmultilingue.pl  "UTF-8" ./DUMP-TXT/$j/$i-utf8.txt ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/motif-regexp.txt ;
			mv resultat-extraction.html ./CONTEXTES/$j/$i-utf8.html ;
			echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TXT/$j/$i.txt\">$i.txt</a><br/><small>($encodage)</small></td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TXT/$j/$i-utf8.txt\">$i-utf8.txt</a></td><td align=\"center\" width=\"100\"><a href=\"../CONTEXTES/$j/$i-utf8.txt\">$i-utf8.txt</a></td><td align=\"center\" width=\"100\"><a href=\"../CONTEXTES/$j/$i-utf8.html\">$i-utf8.html</a></td><td align=\"center\" bgcolor=\"yellow\"><span style='background-color:red;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90;'>$nbOccur</span></td></tr>" >> $tablo;
			cat ./CONTEXTES/$j/$i-utf8.txt >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX_$j.txt ;
			cat ./DUMP-TXT/$j/$i-utf8.txt >> ./FICHIERGLOBAUX/DUMP-GLOBAUX_$j.txt ;
			let "nbdump+=1";
		    else 
			#-----------------------------------------------------
			# la page n'est pas en utf-8 et son encodage detecte par file n'est pas connu de iconv, on cherche un charset...
			#-----------------------------------------------------echo "on cherche un charset dans la page aspiree...";
			if egrep -i " ==> inconnu par inconv, on ne fait rien"
				echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td><td align=\"center\"> - </td><td align=\"center\"> - </td><td align=\"center\"> - </td></tr>" >> $tablo;
			    else
			        #-------------------------------------------
				# le charset extrait est connu de iconv : on lynxe et on dump !!!
				#-------------------------------------------
				echo "VERIF : <$VERIFENCODAGEDANSICONV> ==> connu par inconv, c'est parti ==> lynx, iconv..."
				lynx -dump -nolist -display_charset=$encodage ./PAGES-ASPIREES/$j/$i.html  > ./DUMP-TXT/$j/$i.txt ;
				echo "ENCODAGE final : $encodage (avant conversion vers utf-8)";
				iconv -f $encodage -t utf-8 ./DUMP-TXT/$j/$i.txt > ./DUMP-TXT/$j/$i-utf8.txt
				egrep -i "\b$motif\b" ./DUMP-TXT/$j/$i-utf8.txt > ./CONTEXTES/$j/$i-utf8.txt ;
				nbOccur=??;
				nbOccur=$(egrep -o -i "\b$motif\b" ./DUMP-TXT/$j/$i-utf8.txt | wc -l );
				perl ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/minigrepmultilingue.pl  "UTF-8" ./DUMP-TXT/$j/$i-utf8.txt ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/motif-regexp.txt ;
				mv resultat-extraction.html ./CONTEXTES/$j/$i-utf8.html ;
				echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TXT/$j/$i.txt\">$i.txt</a><br/><small>($encodage)</small></td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TXT/$j/$i-utf8.txt\">$i-utf8.txt</a></td><td align=\"center\" width=\"100\"><a href=\"../CONTEXTES/$j/$i-utf8.txt\">$i-utf8.txt</a></td><td align=\"center\" width=\"100\"><a href=\"../CONTEXTES/$j/$i-utf8.html\">$i-utf8.html</a></td><td align=\"center\" bgcolor=\"yellow\"><span style='background-color:red;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90;'>$nbOccur</span></td></tr>" >> $tablo;
				cat ./CONTEXTES/$j/$i-utf8.txt >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX_$j.txt ;
				cat ./DUMP-TXT/$j/$i-utf8.txt >> ./FICHIERGLOBAUX/DUMP-GLOBAUX_$j.txt ;
				let "nbdump+=1";
			    fi
			
			else 
			    echo "Pas de charset detecte : on ne fait rien pour le DUMP... ";
			    echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td><td align=\"center\"> - </td><td align=\"center\"> - </td><td align=\"center\"> - </td></tr>" >> $tablo;
			    
			fi
		    fi
                fi
                # fin curl OK
		else
		    echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\" bgcolor=\"red\"> - </td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\" bgcolor=\"red\"> - </td><td align=\"center\" width=\"100\" bgcolor=\"red\"> - </td><td align=\"center\"> - </td><td align=\"center\"> - </td><td align=\"center\"> - </td></tr>" >> $tablo;
	    fi
	  let "i+=1"; 
	}
	echo "<tr><td align=\"center\" colspan=\"4\" 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><td colspan="3" bgcolor=\"silver\"></td></tr>" >> $tablo;
	echo "</table>" >> $tablo; 
	let "j+=1"; 
	echo "<p align=\"center\"><hr color=\"blue\" width=\"50%\"/></p>" >> $tablo;
}
echo "</body></html>" >> $tablo; 
		
		
		


Dernier script :

Voilà ce qu'on a fait comme le dernier script :

Codes finaux :

		#!/usr/bin/bash
echo "fichier des liens"
echo "chemin de sortie"
echo "chemin des motifs"
read motif
for fichier in `ls $fichierDesUrls`
{
	i=1
	nbdump=0
	echo "<html><head><meta charset="UTF-8"><title>tableau des liens</title><meta charset="UTF-8"></head><body>" >> $fichierDeSortie/$fichier.html
	echo "<table width=\"80%\" align=\"center\" border=\"4\" bordercolor=\"orange\">" >> $fichierDeSortie/$fichier.html
	echo "<tr><td align=\"center\" colspan=\"11\" bgcolor=\"white\"><span style=\"color:red\"><b>Fichier url : $fichierDesUrls/$fichier | Motif : liberté </b> </span></td></tr>" >> $fichierDeSortie/$fichier.html
	echo "<tr bgcolor=\"pink\"><td align=\"center\">Num des urls</td><td align=\"center\">Adresse url</td><td align=\"center\">Pages Aspirées</td><td align=\"center\">Retour CURL</td><td align=\"center\">Encodage initial</td><td align=\"center\">Dump(encodage initial)</td><td align=\"center\">Dump(utf8)</td><td align=\"center\">Contexte en utf8</td><td align=\"center\">Contexte en HTML</td><td align=\"center\">Fréquences du mot<br/>dans DUMP</td><td align=\"center\">Index Dump</td></tr>" >> $fichierDeSortie/$fichier.html
	for ligne in `cat $fichierDesUrls/$fichier`
	{
		wget -O ./PAGES-ASPIREES/$fichier-$i.html "$ligne";	
		retourcurl=$?;
		conPagAsp=$(egrep -i -o "(400 )?Bad request|Moved Permanently|Not Acceptable|Access Denied|Object Moved|The document has moved" ./PAGES-ASPIREES/$fichier-$i.html | sort -u)
		if [[ $conPagAsp != "" ]]
			then
				retourcurl="<span style='background-color:red;color:white;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90'>$retourcurl</span><br/><small>Error : $conPagAsp</small>" 
		fi
		if [[ $retourcurl == 0 ]]
			then
				encodage=$(./PROGRAMMES/detect-encoding/detect-encoding.exe  ./PAGES-ASPIREES/$fichier-$i.html | tr "a-z" "A-Z" | sed "s/\n//")
				if [[ $encodage == "UTF-8" ]]
					then
						lynx -dump -nolist -display_charset="$encodage" $ligne > ./DUMP-TEXT/$fichier-$i-utf8.txt
						egrep -o "\w+" ./DUMP-TEXT/$fichier-$i-utf8.txt | sort | uniq -c | sort -r > ./DUMP-TEXT/$fichier-$i-index.txt
						egrep -wE `cat $motif` ./DUMP-TEXT/$fichier-$i-utf8.txt > ./CONTEXTES/$fichier-$i-utf8.txt
						nbOccur=$(egrep -ico `cat $motif` ./DUMP-TEXT/$fichier-$i-utf8.txt)					
						echo "<tr><td align=\"center\">$i</td><td align=\"center\"><a href=\"$ligne\">$ligne</a></td><td align=\"center\"><a href=\"../PAGES-ASPIREES/$fichier-$i.html\">$i</a></td><td align=\"center\">$retourcurl</td><td align=\"center\">$encodage<br/>(detect-encodage)</td><td align=\"center\">-</td><td align=\"center\"><a href=\"../DUMP-TEXT/$fichier-$i-utf8.txt\">dump-$i</a></td><td align=\"center\"><a href=\"../CONTEXTES/$fichier-$i-utf8.txt\">contexte-$i</a></td><td align=\"center\"><a href=\"../CONTEXTES/$fichier-$i-utf8.html\">contexte-$i</a></td><td align=\"center\">$nbOccur</td><td align=\"center\"><a href=\"../DUMP-TEXT/$fichier-$i-index.txt\">$fichier-$i-index</a></td></tr>" >> $fichierDeSortie/$fichier.html
						echo "<file=$nbdump>" >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX/$fichier.txt 
						echo "<file=$nbdump>" >> ./FICHIERGLOBAUX/DUMP-GLOBAUX/$fichier.txt 
						cat ./CONTEXTES/$fichier-$i-utf8.txt >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX/$fichier.txt 
						cat ./DUMP-TEXT/$fichier-$i-utf8.txt >> ./FICHIERGLOBAUX/DUMP-GLOBAUX/$fichier.txt 
						cat ./DUMP-TEXT/$fichier-$i-index.txt >> ../FICHIERGLOBAUX/index-dump-$fichier.txt
						let "nbdump+=1"
						let "i+=1"
					else
						VERIFENCODAGEDANSICONV=$(iconv -l | egrep -io $encodage | sort -u)
						if [[ $VERIFENCODAGEDANSICONV == "" ]]
							then
								lynx -dump -nolist -display_charset="$encodage" $ligne > ./DUMP-TEXT/$fichier-$i.txt
								iconv -f $encodage -t UTF-8 ./DUMP-TEXT/$fichier-$i.txt > ./DUMP-TEXT/$fichier-$i-utf8.txt
								egrep -o "\w+" ./DUMP-TEXT/$fichier-$i-utf8.txt | sort | uniq -c | sort -r > ./DUMP-TEXT/$fichier-$i-index.txt
								egrep -wE `cat $motif` ./DUMP-TEXT/$fichier-$i-utf8.txt > ./CONTEXTES/$fichier-$i-utf8.txt
								nbOccur=$(egrep -ico `cat $motif` ./DUMP-TEXT/$fichier-$i-utf8.txt)					
								echo "<tr><td align=\"center\">$i</td><td align=\"center\"><a href=\"$ligne\">$ligne</a></td><td align=\"center\"><a href=\"../PAGES-ASPIREES/$fichier-$i.html\">$i</a></td><td align=\"center\">$retourcurl</td><td align=\"center\">$encodage<br/>(detect-encodage)</td><td align=\"center\"><a href=\"../DUMP-TEXT/$fichier-$i.txt\">dump-$i</a></td><td align=\"center\"><a href=\"../DUMP-TEXT/$fichier-$i-utf8.txt\">dump-$i</a></td><td align=\"center\"><a href=\"../CONTEXTES/$fichier-$i-utf8.txt\">contexte-$i</a></td><td align=\"center\"><a href=\"../CONTEXTES/$fichier-$i-utf8.html\">contexte-$i</a></td><td align=\"center\">$nbOccur</td><td align=\"center\"><a href=\"../DUMP-TEXT/$fichier-$i-index.txt\">$fichier-$i-index</a></td></tr>" >> $fichierDeSortie/$fichier.html
								echo "<file=$nbdump>" >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX/$fichier.txt 
								echo "<file=$nbdump>" >> ./FICHIERGLOBAUX/DUMP-GLOBAUX/$fichier.txt 
								cat ./CONTEXTES/$fichier-$i-utf8.txt >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX/$fichier.txt 
								cat ./DUMP-TEXT/$fichier-$i-utf8.txt >> ./FICHIERGLOBAUX/DUMP-GLOBAUX/$fichier.txt 
								cat ./DUMP-TEXT/$fichier-$i-index.txt >> ../FICHIERGLOBAUX/index-dump-$fichier.txt
								let "nbdump+=1"
								let "i+=1"
						else
							if
								egrep -i "<meta.*charset" ./PAGES-ASPIREES/$fichier-$i.html
									then
										encodage=$(egrep -m 1 -o '(((utf|UTF)-(8|16|32))|(gb|GB)(k|K|2312|18030)|
										(iso|ISO|Iso)-8859-(\w)(\w)?|(WINDOWS|windows)-1252|(WINDOWS|windows)-1256|
										((m|M)(a|A)(c|C)(R|r)(O|o)(M|m)(a|A)(n|N))|us-ascii)' ./PAGES-ASPIREES/$fichier-$i | sort -u)
										VERIFENCODAGEDANSICONV=$(iconv -l | egrep -io $encodage | sort -u)
										if [[ $VERIFENCODAGEDANSICONV == "" ]]
											then
												echo "<tr><td align=\"center\">$i</td><td align=\"center\"><a href=\"$ligne\">$ligne</a></td><td align=\"center\"><a href=\"../PAGES-ASPIREES/$fichier-$i.html\">$i</a></td><td align=\"center\">"Encodage non détecté"</td><td align=\"center\">"Encodage non détecté"</td><td align=\"center\">"Encodage non détecté"</td><td align=\"center\">"Encodage non détecté"</td><td align=\"center\">"Encodage non détecté"</td><td align=\"center\">"Encodage non détecté"</td><td align=\"center\">"Encodage non détecté"</td><td align=\"center\">"Encodage non détecté"" >> $fichierDeSortie/$fichier.html
												let "i+=1"
										else
											lynx -dump -nolist -display_charset="$encodage" $ligne > ./DUMP-TEXT/$fichier-$i.txt
											iconv -f $encodage -t UTF-8 ./DUMP-TEXT/$fichier-$i.txt > ./DUMP-TEXT/$fichier-$i-utf8.txt
											egrep -o "\w+" ./DUMP-TEXT/$fichier-$i-utf8.txt | sort | uniq -c | sort -r > ./DUMP-TEXT/$fichier-$i-index.txt
											egrep -wE `cat $motif` ./DUMP-TEXT/$fichier-$i-utf8.txt > ./CONTEXTES/$fichier-$i-utf8.txt
											nbOccur=$(egrep -ico `cat $motif` ./DUMP-TEXT/$fichier-$i-utf8.txt)					
											echo "<tr><td align=\"center\">$i</td><td align=\"center\"><a href=\"$ligne\">$ligne</a></td><td align=\"center\"><a href=\"../PAGES-ASPIREES/$fichier-$i.html\">$i</a></td><td align=\"center\">$retourcurl</td><td align=\"center\">$encodage<br/>(detect-encodage)</td><td align=\"center\"><a href=\"../DUMP-TEXT/$fichier-$i.txt\">dump-$i</a></td><td align=\"center\"><a href=\"../DUMP-TEXT/$fichier-$i-utf8.txt\">dump-$i</a></td><td align=\"center\"><a href=\"../CONTEXTES/$fichier-$i-utf8.txt\">contexte-$i</a></td><td align=\"center\"><a href=\"../CONTEXTES/$fichier-$i-utf8.html\">contexte-$i</a></td><td align=\"center\">$nbOccur</td><td align=\"center\"><a href=\"../DUMP-TEXT/$fichier-$i-index.txt\">$fichier-$i-index</a></td></tr>" >> $fichierDeSortie/$fichier.html
											echo "<file=$nbdump>" >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX/$fichier.txt 
											echo "<file=$nbdump>" >> ./FICHIERGLOBAUX/DUMP-GLOBAUX/$fichier.txt 
											cat ./CONTEXTES/$fichier-$i-utf8.txt >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX/$fichier.txt 
											cat ./DUMP-TEXT/$fichier-$i-utf8.txt >> ./FICHIERGLOBAUX/DUMP-GLOBAUX/$fichier.txt 
											cat ./DUMP-TEXT/$fichier-$i-index.txt >> ../FICHIERGLOBAUX/index-dump-$fichier.txt
											let "nbdump+=1"
											let "i+=1"
										fi			
							fi
						fi
	
				fi
		fi		
	}
	echo "<tr><td align=\"center\" colspan=\"6\" bgcolor=\"silver\"> </td><td align=\"center\" width=\"100\"><a href="../FICHIERGLOBAUX/DUMP-GLOBAUX/$fichier.txt">Fichier DUMP<br/>global</a><br/><small>$nbdump fichier(s)</small></td><td align=\"center\" width=\"100\"><a href="../FICHIERGLOBAUX/CONTEXTES-GLOBAUX/$fichier.txt">Fichier CONTEXTES<br/>global</a><br/><small>$nbdump fichier(s)</small></td><td colspan="3" bgcolor=\"silver\"></td></tr>" >> $fichierDeSortie/$fichier.html
	echo "<tr><td align=\"center\" colspan=\"6\" bgcolor=\"silver\"> </td><td align=\"center\" width=\"100\"><a href="../FICHIERGLOBAUX/index-dump-$fichier.txt">Index DUMP<br/>global</a><br/><small>$nbdump fichier(s)</small></td><td align=\"center\" width=\"100\"><a href="../FICHIERGLOBAUX/index-contexte/$fichier.txt">Index CONTEXTES<br/>global</a><br/><small>$nbdump fichier(s)</small></td><td colspan="3" bgcolor=\"silver\"></td></tr>" >> $fichierDeSortie/$fichier.html
	echo "</table>" >> $fichierDeSortie/$fichier.html
	echo "<hr width=\"50%\" color=\"blue\"/>" >> $fichierDeSortie/$fichier.html	
}
echo ">/body>" >> $fichierDeSortie/$fichier.html
echo ">/html<" >> $fichierDeSortie/$fichier.html
		
		

 

N'oublions pas que pour éviter de répeter chaque fois les répertoires, on a retiré les adresses des répertoires chaque fois d'un autre fichier.