SCRIPT

Lecture du code

Pour rendre le code plus agréable à lire, les commentaires ont été mis en vert et les bouts du code HTML en bleu. Une mise en page basique a été ajoutée pour mettre en valeur la structure du code HTML et pour la distinguer de celle du code shell.

Ces opérations ont amélioré la lisibilité du code, cependant la fonctionnalité du code (s'il va être copié/collé à partir de cette page) ne peut pas être garantie à cause des caractères de fin de ligne qui ont été ajoutés.

Si vous voulez utiliser le script et lire le code sans les fins de ligne ajoutés, vous pouvez télécharger directement le fichier tableau.sh.

tableau.sh


#!/bin/bash

################ SAISIE DES DONNEES PAR UTILISATEUR ##############################

echo "";              							 
echo "*** Repertoire contenant les listes des URL :";
read rep;

echo "";              							 
echo "*** Nom pour le fichier ou sera enregistre le tableau :";
read nf;

############ AVERTISSEMENT CONCERNANT LES ACTIONS DU SCRIPT #####################

echo "";              							
echo "*** Ce script va creer les repertoires:";
echo "";             							 
echo "	[`pwd`/documentation]";
echo "";               
echo "	*******avec le fichier $nf.html contenant un tableau par usage";
echo "";               
echo "	[`pwd`/pages-aspirees]";
echo "	[`pwd`/dump-text]";
echo "	[`pwd`/contextes]";
echo "";
 
echo "***Taper une touche pour commencer!!!";
read touche;

###################Création des répertoires de travail #########################

mkdir documentation;
mkdir pages-aspirees;
mkdir dump-text;
mkdir contextes;

################### Debut du fichier html ######################################

echo "<html>
	<head>
		<title>TABLEAU DE LIENS : $nf$numREP</title>
		<meta charset=\"ISO-Latin 8851\"></meta>
	</head>
	<body>
		<h1>Tableaux pour $nf</h1>" 
		>>documentation/$nf.html; 

############# DEBUT de la boucle principale : LECTURE DES FICHIERS ############# 

for file in `ls $rep`      			
{
#compteur pour le nombre d'usages (de fichiers)
numREP=$[$numREP + 1] ;

#créer le répertoire pour les pages aspirées         	
mkdir pages-aspirees/usage$numREP ;

#créer le rép. pour les fichers avec le texte dumpé
mkdir dump-text/usage$numREP;	

#créer le rép. pour les fichers avec le contexte	
mkdir contextes/usage$numREP;
		
# impression du l'entete du tableau:
echo "<table border=\"1\">
	<tr>
		<th>URL</th>
		<th>page aspirée</th>
		<th>texte dumpé</th>
		<th>contexte</th>
	</tr> 
	<tr>
		<td colspan=\"4\">	
			répertoire : <b>usage$numREP</b>
			fichier source : <b>$file</b>
		</td>
	</tr>" 
	>>documentation/$nf.html;       

########## DEBUT de la boucle emriquée : LECTURE DES URLS ######################

for url in `cat $rep/$file`			
{
#compteur pour le nombre URLS
numURL=$[$numURL + 1];	
		
#aspiration de l'URL		
wget --tries=1 -T 20 -o documentation/logfile.txt 
	-O pages-aspirees/usage$numREP/asp$numURL.html $url; 

############### TEST DE WGET 			
if grep "saved" documentation/logfile.txt

############### SI SUCCES
then

#dumper la page
lynx -dump $url >dump-text/usage$numREP/dump$numURL.txt	

#recherche du motif et filtrage du contexte		
egrep 	-v "^$" dump-text/usage$numREP/dump$numURL.txt| egrep -v "[\[|\]|/\\]" 
	|egrep -v "http"|egrep -i -C 2 "barrage"
	>contextes/usage$numREP/cntx$numURL.txt 
echo ";<tr>
	<td>
	<a href=\"$url\" target=\"_blank\" title=\"$url\">
	url$numURL
	</a>
	</td>
	
	<td>
	<a href=\"../pages-aspirees/usage$numREP/asp$numURL.html\" target=\"_blank\">
	asp$numURL.html
	</a>
	</td>
	
	<td>
	<a href=\"../dump-text/usage$numREP/dump$numURL.txt\" target=\"_blank\">
	dump$numURL.txt
	</a>
	</td>
	
	<td>
	<a href=\"../contextes/usage$numREP/cntx$numURL.txt\" target=\"_blank\">
	cntx$numURL.txt
	</a>
	</td>
    </tr>" 
    >>documentation/$nf.html

############### SI ERREUR		
else								
echo "<tr>
	<td>
	<a href=\"$url\" target=\"_blank\" title=\"$url\">
	url$numURL
	</a>
	</td>
	
	<td colspan=\"3\">
	echec de wget lien mort !!!
	</td>
      </tr>" 
      >>documentation/$nf.html
fi

################### FIN  de la boucle emriquée #################################
}

echo "</table><br/><br/>" >>documentation/$nf.html; 
	               
###################### FIN de la boucle principale #############################
}

echo "</body></html>" >>documentation/$nf.html; 

#################### FIN DU CODE ###############################################
remonter