Secteur TAL Informatique,
Université Sorbonne nouvelle, Paris 3

19 rue des Bernardins, 75005 Paris
Travail du 10 Novembre 2005 :
Automatisation des Tâches

Liens

lien direct : http://www.tal.univ-paris3.fr/cours/projet_10_11_05.html

Retour page du cours.

Transparents

Transparents Série 1 (version PDF), "Présentation du cours et du projet, le mini-projet "barrage", ... ou (version HTML) : séances du 13/10/2005, 20/10/2005, 27/10/2005, 03/11/2005, 10/11/2005, 17/11/2005, 24/11/2005.

Transparents Série 2 (version PDF) : "Fichiers et systèmes de fichiers"

Point de départ :

A. Chaque groupe a un fichier ou plusieurs fichiers contenant les URL illustrant les emplois du mot "barrage"

  1. fichier barrage_hydro.txt
  2. http://www.barrage.com/index.html
    http://www.edf.fr/energie_hydro.html
    http://www.un_amour_de_barrage.fr/durance.htm

  3. fichier tir_de_barrage.txt
  4. http://www.red_devils.com/on_les_aura.html
    http://www.ioc.org/derniers_matchs.html
    http://www.disqualifiez_moi.net/competitions/leeds_vs_liverpool.htm
  5. fichier autres_usages.txt
  6. ......

B. Chaque groupe a enregistré en local les URL contenues dans ces fichiers, par la commande : wget -i

La figure suivante illustre la suite des traitements réalisés à ce stade :


 

Problématique du jour : on a environ 50 URL en local, on veut automatiser les tâches suivantes :

Pour un usage du mot "barrage" illustré dans les URL du fichier barrage_hydro.txt ou du fichier tir_de_barrage.txt ou d'un autre, on veut permettre :

  • 1) le renvoi aux 50 pages correspondantes, en local ou en global, grâce à des liens hypertexte (du type <a href="http://www.red_devil.com/on_les_aura.html"> match de barrage</a>). Pour cela on va créer automatiquement une page html listant tous ces liens : il s'agit d'une tâche répétitive.
  • 2) la transformation des 50 fichiers html (URL) en fichiers au format texte, de façon à pouvoir retrouver les contextes d'utilisation de "barrage" (avec lynx -dump). A nouveau, au lieu de taper 50 fois la même commande, on vous demandra d'automatiser cette tâche.
  • 3) la possibilité pour un utilisateur d'interroger tous les fichiers liés à un usage spécifique de "barrage" pour retrouver le contexte immédiat de ce mot, que ce dernier soit écrit en lettres majuscules ou minuscules (avec egrep -i). Il s'agit bien encore d'automatisation.

Pré-requis :

  • redirection > et >>
  • commande cat dans un terminal et comment le programme sait qu'il doit évaluer une expression avec des apostrophes inversées
  • chemin absolu et relatif vers fichier
  • répertoire d'accueil (là où je suis)
  • caractères réservés et comment les dé-spécialiser (ici \")
  • interaction avec utilisateur (commande du shell : read)
  • commande du shell : echo
  • Tâche numéro 1 :

    • écriture d'un shell script avec un éditeur de texte (emacs, vi, bloc-notes) pour automatiser la tâche consistant à faire un tableau html contenant toutes les URL illustrant un certain usage du mot "barrage"

    shebang #!/bin/bash

    commentaires indiqués avec # en début de ligne #ici, commentaire

    echo "hello world";

    read data; le programme stocke ce que l'utilisateur a rentré dans la variable $data

    boucle simple "for [fic] in [liste ou commande entre apostrophes inversées]" { tâche à accomplir}


    #!/bin/bash
    echo "donne nom de fichier contenant les liens http"; #c'est la liste des pages wgettées
    read fic; #le programme connait le fichier de liens sous le nom $fic
    echo "donne nom de fichier html où stocker ces liens"; #c'est le tableau de liens à créer
    read tablo; #enregistre nom donné par utilisateur dans la variable $tablo
    echo "<html><head><title>tableau de liens</title></head><table>" > $tablo; #code de début de tableau
    for nom in `cat $fic` #$nom est la variable dans laquelle sera stocké chaque lien
    {
    echo "<tr><td>$nom</td></tr>" >> $tablo; #création d'un tableau à une colonne et autant de lignes qu'il y a d'URL
    }
    echo "</table></html>" >> $tablo; #code de fin de tableau
    #le fichier dont le nom correspond à la variable tablo est maintenant créé, ouvrez-le

    Que faut-il rajouter au code pour que le tableau d'URL permette un accès direct à chacune des URL listées ?

    Tâches numéro 2 et 3 :

    A vous d'écrire et d'exécuter un programme pour mettre en oeuvre les tâches 2 et 3.