pluriTAL – BLOG Master pluriTAL [ParisX, ParisIII, INALCO]

PED13-ML-séance 09.11.06

Posted in Projet 2006-2007 by pluritaluser on 9 novembre 2006

Bonjour à tous!

> on est dans l’étape de traitement des URLs; on a déjà vu la commande wget

> aujourd’hui, on va voir l’outil lynx et l’outil egrep

  • lynx

C’est un navigateur en ligne de commandes.

Jetons un oeil au man de lynx, et en particulier à l’option -dump de cette commande :

LYNX(1)                                                   LYNX(1)

NAME
       lynx  -  a general purpose distributed information browser
       for the World Wide Web

SYNOPSIS
       lynx [options] [path or URL]

       use "lynx -help" to display a  complete  list  of  current
       options.

DESCRIPTION
       Lynx  is  a fully-featured World Wide Web (WWW) client for
       users running cursor-addressable,  character-cell  display
       devices (e.g., vt100 terminals, vt100 emulators running on
       Windows 95/NT or Macintoshes, or  any  other  "curses-ori-
       ented"  display).   It  will display hypertext markup lan-
       guage (HTML) documents containing links to files  residing
       on  the  local system, as well as files residing on remote
       systems running Gopher, HTTP, FTP, WAIS, and NNTP servers.
       Current  versions of Lynx run on Unix, VMS, Windows 95/NT,
       386DOS and OS/2 EMX.

       Lynx can be used to access information on the  World  Wide
       Web,  or  to  build information systems intended primarily
       for local access.  For example,  Lynx  has  been  used  to
       build  several Campus Wide Information Systems (CWIS).  In
       addition, Lynx can  be  used  to  build  systems  isolated
       within a single LAN.

OPTIONS
       At  start  up, Lynx will load any local file or remote URL
       specified at the command line.  For help with URLs,  press
       "?"   or  "H"  while  running  Lynx.  Then follow the link
       titled, "Help on URLs."

       Lynx uses only long option names. Option names  can  begin
       with  double  dash  as well, underscores and dashes can be
       intermixed in option names (in the reference below options
       are with one dash before them and with underscores).

 

> l’option lynx -dump URL : permet de récupérer le texte d’une URL

 

      -dump  dumps the formatted output of the default  document
              or  one  specified  on the command line to standard
              output.  This can be used in the following way:

              lynx -dump http://www.trill-home.com/lynx.html

Problème : cette commande affiche à l’écran l’ensemble des données récupérées (le texte de l’URL).

Il faut insérer une redirection de flux (>) pour que ça soit plus lisible. En principe on doit obtenir le texte sans les balises.

Il faudra intégrer ce mécanisme (lynx -dump URL > fichier-redirige.txt) dans le script mis à disposition par les enseignants.

 

En fait, c’est le même mécanisme que enregistrer sous une page web à partir d’un navigateur comme Firefox.

 

  • egrep

La commande egrep est un outil UNIX qui permet de faire du filtrage de motifs. A l’aide de cette commande, on peut extraire d’un fichier texte toutes les lignes qui contiennent la châine de caractères (le motif) spécifié.

 

Syntaxe : egrep [motif] [fichier]

 

Pour représenter de manière générique les chaînes de caractères, on utilise les expressions régulières, qui permettent donc de filtrer la chaîne recherchée.

Pour ce faire, il faut utiliser les opérateurs d’expressions régulières, qui ont une sémantique particulière:

    • .‘ : n’importe quel caractère sauf le point

    • *‘ : on peut avoir le caractère autant de fois qu’on veut (de 0 à n fois)

    • []‘ : permet de spécifier qu’on veut un seul des deux caractères spécifié dans l’ensemble, i.e. entre crochets

    • ?‘ : le point d’interrogation est un opérateur d’optionnalité qui porte sur le caractère qui le précède, et qui indique qu’on peut avoir ce caractère dans le motif O ou 1 fois

    • +‘ : comme le ?, cet opérateur porte sur le caractère qui le précède et indique qu’on peut l’avoir au moins une fois dans le motif

    • {3, }‘ : précise qu’on veut au moins 3 occurrences du motif qui précède, et au plus autant d’occurrences que possible; si on avait eu {3, 5}, on aurait recherché au moins 3 occurrences, au plus 5, du motif recherché

    • ( )‘: le fait de parenthéser une partie du motif permet de limiter la portée d’un opérateur, i.e. appliquer un opérateur sur le contenu de la parenthèse

    • |‘ : le pipe permet de signifier qu’on veut filtrer soit ce qui est à gauche soit ce qui est à droite du pipe; par exemple ‘clé|clef‘ signifie qu’on veut filter soit ‘clé‘ soit ‘clef‘. Attention, ici, le pipe est un opérateur d’expression régulières, ce n’est pas le pipe d’empilement de commandes!

  • exemple : egrep  » .*isme » mots.txt = on obtient tout les mots finissant par ‘-isme’ contenus dans le fichier mots.txt

ATTENTION > * > | : règle de précédence (concaténation > étoile > optionnalité) qui spécifie un ordre de lecture dans les expressions régulières

    • \‘: c’est l’opérateur de déspécialisation, qui, appliqué aux autres opérateurs d’expressions régulières, permet de les prendre en compte dans le motif en tant que caractère et non pas en tant qu’opérateurs; autrement dit, \ permet de ne pas interpréter les opérateurs si jamais les caractères des opérateurs figurent dans un motif d’expression régulière

    • $‘ : fin de ligne

    • ^‘ : début de ligne

    • [^a-z]‘ : on recherche toutes les suites de caractères sauf celles qui suivent (i.e. celles en minuscules); le chapeau a donc une valeur différente en fonction de son contexte

    • \b‘ : permet de rechercher le début ou la fin d’une chaîne de carcatère comprise entre deux blancs (i.e. permet de spécifier le début ou la fin d’un mot)

 

Voyons quelques options de la commande egrep :

    • l’option egrep -v permet de filtrer toutes les lignes qui ne contiennent pas le motif spécifié

On peut combiner egrep avec d’autres commandes, par exemple wc -l, qui permet de compter les lignes : on peut empiler les commandes avec l’opérateur ‘|‘.

Si on empile egrep [motif] [fichier] | wc -l , on obtient le nombre de lignes qui contiennent le motif spécifié à extraire du fichier.

 

    • -i : on recherche le motif qu’il sans contrainte sur la casse

 

Exemple : egrep -v  »^$ » mots.txt permet de filter les lignes vides du fichier

 

Faire un man egrep donnera des informations plus précises.

Pour davantage d’exemples pratiques avec les expressions régulières, je vous invite à consulter la page suivante :

http://www.cavi.univ-paris3.fr/ilpga/ilpga/tal/sitespp/L5T51-2005-2006
/KristinIRSIG-MargueriteLEENHARDT/TAL.htm

où sont présentés un ensemble d’exercices de prise en main des opérateurs d’expressions régulières, entre autres.

Travail à faire pour le projet barrage

 

Il faut maintenant modifier le script pour obtenir, dans le tableau:

Voilà pour la sénace d’aujourd’hui!

A bientôt pour les étapes ultérieures!

Marguerite

Laisser un commentaire