jeudi 3 novembre 2011

Exercice: créer un tableau


Objectif: créer un tableau numéroté avec un lien html sur chaque ligne

Résultat: 6 tableaux- Pour notre langue source, le français, un tableau des liens de cinéma et un autre pour les liens de théâtre, même histoire pour nos langues visées, l'italien et l'anglais

Etapes: écrire un script en bash puis exécuter ce script et enfin vérifier le résultat.

Le script:

#!/bin/bash
echo "Donnez le nom du fichier contenant les liens http : ";
read fic;
echo "donnez le nom du fichier html ou stocker ces liens : ";
read tablo;
echo "<html><head><title>tableau de liens</title></head><body><table border=\"1\">"> $tablo;
# Variable i pour compter les URLs
i=1;
for nom in `cat $fic`
{
echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td></tr>" >> $tablo;
let "i+=1";
}
echo "</table></body><html>" >> $tablo;


L'exécution:



Résultat:
Problèmes rencontrés:
1). Quelques problèmes de syntaxe dans le script
2). Quand j'ai essayé d'exécuter le script ce message s'est affiché: "Permission Denied". J'ai utilisé la commande chmod 755 nom_du_fichier_contenant_le_script pour modifier les droits et ça a marché.
4). J'ai écrit mon script sur l'editeur de texte pour Mac Smultron, mais le dernier lien était répété en dehors des tableaux. En ré-écrivant le script sur SubEthaEdit, un autre editeur de texte, le problème était résolu.


On est prêtes pour commencer notre aventure!

Voilà un petit plan de notre aventure! La première étape était de recueillir des données à analyser (les URLs ci-dessous, dans les trois langues choisies : français, anglais et italien). La deuxième étape représente la plus part du voyage à faire dans le monde du TAL : il s’agit de différentes opérations (aspiration, stockage, extraction du texte et du contexte, détection de l’encodage du texte, etc.) qui nous permettrons de faire une analyse linguistique de nos données et de valider (ou falsifier) notre hypothèse de départ.

Pour chaque URL, on devra:
1) Récupérer la page web et la stocker dans « pages aspirées » ;
2) Repérer l’encodage du texte (Si l’encodage ne sera pas UTF-8, la commande file nous aidera dans cette mission et la commande iconv nous aidera à convertir l’encodage) ;
3) Créer une ligne dans un tableau HTML pour chaque URL trouvé.

Tous nos URLs sont contenus dans des fichiers .txt et on aura besoin de créer un programme que fasse une (ou plus) opération/s pour chaque URL x qui appartient au fichier fic : 

for x ∈ fic… on fera 1), 2), 3)…

Pour faire une affectation, c’est-à-dire assigner une valeur (un fichier spécifique) à la variable fic, il faudra utiliser la commande read. Grace à sa caractéristique interactivité, elle nous permettra d’insérer le nom du fichier (pour être précises, son chemin relatif). Pour afficher la valeur de la variable fic, on utilise le dollar $ (on n’a pas encore découvert si l’euro € a une valeur :-), comme dans l’exemple suivante :

echo $fic

Grace à le symbole $, notre ordinateur ne va pas lire littéralement la variable, mais il se transforme dans un traducteur qui interprète la variable, en lisant son contenu.

Problème : comment dire que chaque fichier est une liste (un ensemble) des URLs ?
On avait vu que, pour afficher la liste des URLs contenus dans un fichier, il faut utiliser la commande cat. De plus, on a appris que les guillemets simples renversés servent à substituer une commande par son résultat. Donc, pour récupérer les noms de chaque URL, on devra programmer une affectation récurrente :

for nom in `cat $fic`

On a maintenant tous les éléments pour commencer à travailler !