J'espere que jusqu'à présent, vous avez compris le deroulement et que mes explications vous aideront.
J'attire votre attention sur le dernier (pour le moment) script!!!! Eh oui, ce n'est pas fini!!!!
L'objectif de la troisième séance du projet encadré consiste à créer une seconde colonne dans le tableau qui contient ce que l'on appelle une page aspirée.
une page aspirée, c'est à un peu la fonction d'un aspirateur. Ca signifie que l'on souhaite recuperer, extraire seulement l'information qui nous interesse dans une page donnée.
Voici le script:
#!/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 tablo;
echo "<html><head><title>tableau de liens</title></head><body><table border=1>" > $tablo;
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>" >> $tablo;
let "i+=1" ;
}
echo "</table></body></html>" >> $tablo;
Comme à l'accoutumé, nous allons essayer de fournir quelques explications:
Nous retrouvons toujours notre boucle (dont vous avez compris le principe j'espere)
for nom in `cat $fic` : lit et affiche le contenu de la variable fic (les liens). La variable Nom prendra successivement les valeurs de la variable fic.
Cependant un autre élément devrait attirer votre attention, en réalité plusieurs éléments:
Alors essayons d'expliquer tout cela:
i est une variable auquel on affecte la valeur 1
Wget est la commande d'aspiration des pages si je puis m'exprimer ainsi.
Que va donc faire la boucle, elle lit le lien http et aspire ces liens ainsi que leur page web (.html), elle place tout ceci dans une deuxieme colonne appelé PAGES ASPIREES qui contiendra un lien
actif qui renverra vers le lien et donc sa page web.
Le dernier element let "i+=1" signifie que la boucle va parcourir les fichiers 1 par 1 (let "i+1=1 ainsi i=2) et ainsi de suite.
Une chose fondamentale à retenir, c'est le positionnement de i=1 et let i+=1
i=1 se met en dehors de la boucle (la variable, si on la met à l'intérieur de la boucle, elle ne va générer que des 1)
et i+=1 à l'intérieur de la boucle (pour réaliser le calcul)
Ces précisions faites, voici ce à quoi ressemble dernier script avec la commande w-get
Il suffit de reprendre votre script précédent et de rajouter les éléments w-get au bon endroit.
Script final:
#!/bin/bash
echo "Pour analyser des fichiers dans un répertoire, saisir un chemin S.V.P: "
read dossier;
echo "Répertoire lu et donne le chemin où tu veux créer la page :";
read tablo;
echo "Tableau créé";
echo "<html><head><title>Tableau des liens</title></head>" > $tablo;
echo "<body style=\"background-color: #CC3366;\"><center><p align=\"justify\"><font style=\"font-family:arial;\" color=\"orange\" ><h1>Voici le tableau des
liens</h1></font></p><table border=\"1\" bgcolor=\"silver\" width=\"30%\">" > $tablo;
i=1
for fichier in `ls $dossier`
{
y=1
echo "<thead><tr><th>Fichier $Fichier</th><th>PAGES-ASPIREES</th></tr></thead>">> $tablo
for nom in `cat $dossier/$fichier`
{
wget -O ./PAGES-ASPIREES/$i.html $nom
Ce script nommé tab-liens2.sh doit être enregistré dans le dossier PROGRAMMES
DANS LE BASH
Il vous faudra réecrire exactement la même chose que précedement puisque ce n'est qu'une modification du script précédent: $sh tab-liens2.sh < run_fr.txt(tab-liens2.sh c'est le nom sous lequel le script a été sauvegardé)
echo"Pour analyser des fichiers dans un répertoire, saisir un chemin S.V.P: "
echo"Répertoire lu et donne le chemin où tu veux créer la page :"
Malheuresement, je ne pourrais pas vous montrer le résultat, j'ai un problème d'incompatibilité Cygwin/Windows 7
Je vais essayer de résoudre cela rapidemment pour être en mesure de vous présenter les prochains résultats.
Il y a une chose essentielle que j'oubliais concernant les problèmes d'incompatibilité.
Face à des problèmes de type 'S' 'r, command not found, ceci peut être corrigé par la commande suivante: Dos2unix
Exemple
dos2unixtab-liens2.sh
Le travail n'est pas encore achevé, à la prochaine....
Je tenais à remercier Marjorie et Kun, de leur grande aide et je souligne à quel point le travail en groupe est primordiale, pour échanger, partager des connaissances,
s'entraider....merci
Partager l'article !Et le moteur s'est enfin remis en route!!!!! (suite): J'espere que jusqu'à présent, vous avez compris le deroulement et que mes explications vous ai ...