vendredi 30 décembre 2011

Contextes

Notre script est bientôt fini, mais il nous reste une étape importante: l'extraction de notre mot dans les trois langues avec le nombre et le contexte de l'occurrence. Pour cela on utilisera la commande egrep plus une belle expression régulière qu'on placera après les commandes lynx et iconv. Maintenant qu'on sait où écrire la commande, qu'est ce qu'on écrit?

Puisqu'on travaille avec le français, l'italien et l'anglais on n'aura pas besoin du programme minigrep disponible sur le site du cours. De plus, on n'a pas réussi à installer ce programme à cause d'une erreur du type 'permission denied' et la commande sudo ne nous ont pas aidé, mais c'est peut-être parce que le terminal ne reconnaissait pas le mot de passe de Francesca.

Voici les nouvelles lignes de commande:

egrep -i "\bjouer\b|\bplay\b|\brecitare\b" ./DUMP-TXT/$j/$i-utf8.txt > ./CONTEXTES/$j/$i-motif.txt ;

nbOccur=??;
nbOccur=$(egrep -o -i "\b$motif\b" ./DUMP-TXT/$j/$i-utf8.txt | wc -l );

-i pour ne pas prendre en compte la case
-l pour extraire la ligne avec l'occurrence du motif
wc sert à compter le nombre d'occurence
pour l'instant on veut juste tester une expression simple, donc on extrait le verbe à l'infinitif. Eventuellement l'expression (à vérifier) sera:
"\bjou[e|ent|er|é|ait|aient]\b|\bplay(s)?|ed\b|\bact(?)| (ed)?\b | \b|\brecit[a|ano|are|ato|ava|avano]\b|\b|\bgioc[a|ano|are|ato|ava|avano]\b|
\binterpret[a|ano|are|ato|ava|avano]\b"

Notre script préliminaire avec les nouvelles additions fait en partie ce qu'on lui demande à faire. Mais, il y a des lignes à modifier.

Quelques problèmes:
On a crée les fichiers txt mais ce script n'a pas crée les fichiers html. Peut-être en répetant la commande ça marchera:

egrep -i "\bjouer\b|\bplay\b|\brecitare\b" ./CONTEXTES/$j/$i-motif.txt > ./CONTEXTES/$j/$i-motif.html;



nbOccur=??;
nbOccur=$(egrep -o -i "\b$motif\b" ./DUMP-TXT/$j/$i-utf8.txt | wc -l );

Avec notre script, on n'arrive pas à accéder les liens .txt (ni les .html d'ailleurs) à partir des tableaux.

Avec certains liens le seul contexte extrait est: 'jouer au poker avec bruno' ce qui n'est pas le contexte recherché, de plus, cette publicité ne s'affiche pas quand on vérifie la page web.

On a toujours un problème avec le comptage de nos liens. La moitié commence bien par 1 et l'autre moitié par 2 au lieu de 1, mais correspond à la première lien URL .

En résumé, il y a plusieurs modifications à faire, mais on avance.

mercredi 14 décembre 2011

Des solutions à quelques problèmes

Dans notre cours aujourd'hui avec un peu de réflexion de ma part et guidé par les professeurs, nos problèmes ont été résolu. D'autres ont été détécté, mais également résolus.

Le problème des liens doublés était à cause de deux fi mal placés du coup la condition if n'était pas fermé et le lien html refaisait la boucle. Le premier fi mal placé coorespondait à
s'il la page a été bien aspirée, on continue--- if [ "$retourcurl" = "0" ]
sinon on ne fait rien----------------------------else echo pas d'aspiration, pas de lynx)
fin de la condition ------------------------------fi
Le deuxième fi mal placé coorespondait à
s'il le charset de la page a été détécté----if [ "$encodage" = "utf-8" ]
if ["$VERIFENCODAGE" != "" ]
sinon on ne fait rien------------------------else echo encodage non-détécté
fin de la condition-------------------------fi

Pour vérifier que tous les if, then, else et fi sont bien placés, j'ai ouvert un nouveau fichier qui ne contient que la squelette de notre boucle.

Un autre problème s'affichait pendant l'exécution: le fichier $j/$i-utf8.txt dans le DUMP TEXT n'existait pas. En effet, on avait demandé à inconv de chercher le contenu dans ce fichier et le mettre dans DUMP-TEXT/$j/$i.txt au lieu de l'écrire à l'invers. Voici le bon ordre:

lynx -dump -nolist -display_charset=$encodage ./PAGES-ASPIREES/$j/$i.html > ./DUMP-TEXT/$j/$i.txt ;
iconv -f $encodage -t utf-8 ./DUMP-TEXT/$j/$i.txt > ./DUMP-TEXT/$j/$i-utf
8.txt ;

A la fin du cours j'ai constaté un dernier problème qu'on a pas encore étudié. Sur 3 tableaux, le premier lien n'a pas été traité et le tableau commence par le 2ème. Pourquoi serait-il?

mardi 13 décembre 2011

Notre cher script

Objectif : Lire un (ou plusieurs) fichier(s) contenant une liste d'URL, produire un fichier HTML contenant un (ou plusieurs) tableau(x) (à 3 colonnes chacun) regroupant (1) ces URLs, (2) les pages aspirées correspondantes, (3) les DUMPS des pages aspirées obtenus avec lynx. Etablir les liens vers les 3 ressources (URL, page locale, dump)

Pendant plusieurs semaines maintenant on a soigné, modifié et manipulé notre script afin d'avoir un tableau avec les colonnes suivantes: n° URL, URL, Pages Aspirées, Retour CURL, DUMP encodage initial et DUMP encodage UTF-8. On a rencontré des problèmes plus complexes qu'avant et les résoudre n'a pas toujours été evident.

Problème 1: Un problème de négligence à propos d'affichage avec echo. On avait affiché que l'encodage était non-détécté alors qu'on l'avait bien détécté.
Problème 2: Francesca travaille sur Linux mais moi, je travaille sur mac et je n'arrive pas à installer lynx sur ma machine. Je l'ai télécharger et dans le console j'ai écrit: sudo apt-get install lynx, mais sans résultat positif.
Problème 3: Nos liens sont testés plusieurs fois au lieu d'une seule fois. Certains sont testés une fois, d'autres 2 et encore d'autres 3. On a eliminé les fichiers cachés, mais le problème n'a pas été résolu. A quoi est lié ce problème? Comment le résoudre?

Voici notre script:

Et voici le résultat:

mercredi 7 décembre 2011

Extraction du contexte et comptage du mot "jouer"

On devra encore un peu ajuster notre script, mais on peut quand même continuer notre aventure. Le but de la prochaine phase est de ajouter trois colonnes à notre tableau. La première colonne contient l’extraction du contexte autour du mot qu’on a choisi (« jouer » et sa traduction en anglais et en italien) en format .txt et la deuxième colonne contient la même chose en format .html. La dernière colonne va contenir le contage du mot choisi. La commande egrep est la commande de filtrage qui permet à la machine de faire une recherche d’une chaîne de caractères dans un fichier. La syntaxe de la commande est : 

egrep -options
chaîne_de_caractères  nom_du_fichier

Pour identifier dans les contextes le mot « jouer », on aura besoin d’utiliser les expressions régulières ! Les expressions régulières, même si difficiles à déchiffrer, sont très utiles parce que servent pour décrire de manière générique des chaînes de caractères pour les traiter. Par exemple, on a déjà utilisé une expression régulière quand on a localisé dans la page html la chaîne de caractères « charset ». Grâce à une expression régulière, on va construire un « modèle » : le programme cherche le modèle et il trouve toutes les chaînes de caractères qui ressemblent au modèle choisi. Par exemple, le modéle \ble\b pour trouver l’article « le » ou le motif « le ».

Comment implémenter les expressions régulières ? En utilisant des caractères spéciaux, des opérateurs:
[ ] représente un caractère (Ex. R [iau]ng = ring, rang, rung)
| permet de marquer une alternative (Ex. Francesca|Ardas – Francesca, Ardas)
( ) pour délimiter la portée de l’opérateur | (Ex. in (any|every) – in any, in every)
[0-9] un caractère entre 0 et 9
^ négation d’une chaîne de caractères: comme ça on désigne un caractère qu’on ne veut pas (Ex. [^Dd] = ni D ni d). On peut l’utiliser pour supprimer de balises html, comme par exemple dans :
Sed –e s/<[^<>]*>//

Puis on a des caractères qui permettent de quantifier des expressions :
? option par rapport à l’expression qui le précède
* ce qui précède: il n’y a pas ou il y a pour n occurrences
+ au moins une occurrence
. permet de représenter n’importe quel caractère sauf le retour à la ligne

Et des opérateurs de frontière :
^ début de chaîne de caractères
$ fin de chaîne de caractères
Donc ^$ est une de chaîne de caractères vide
\w n’importe quel caractère alphanumérique
\b frontière de mot

Le paranthesage nous permet d’organiser la portée d’un opérateur. Toutefois, il y a un ordre d’importance, une hiérarchie à respecter :
fermeture  (*) > concaténation > union

lundi 28 novembre 2011

Phase 3: lynx, egrep

Objectif : Lire un fichier contenant une liste d'URL, produire un fichier HTMLcontenant un tableau (à 3 colonnes) regroupant (1) ces URLs, (2)les pages aspiréescorrespondantes,(3) les DUMPS des pages aspirées obtenus avec lynx. Etablir les liens vers les 3 ressources (URL, page locale,dump).

Pour réaliser la prochaine étape de notre projet, nous avons d'abord modifier notre script en
ajoutant les commandes lynx et egrep en espérant récupérer le texte de nos liens https, ensuite identifier l'encodage et le convertir en UTF-8 si ce n'était pas déjà le cas. Ces deux dernières phases nous ont posé des problèmes.

Voici le script (pour voir les premières lignes, redirigez-vous vers les posts précédents) :

Et voici le résultat:
Mais l'encodage de plusieurs liens ne sont pas détéctés et par conséquence ils n'ont pas été converti en UTF-8. Dans notre script original on avait inclus la vérification suivante:
#---------------------avant de continuer on va vérifier si le charset est connu de iconv---------------
VERIFENCODAGEDANSICONV=$(iconv -l | egrep -io $encodage | sort -u);
if [[ $VERIFENCODAGEDANSICONV == "" ]]
then
#-------------------------------------------
# le charset n'est pas connu de iconv : on fait rien....
#-------------------------------------------
echo "VERIF : <$VERIFENCODAGEDANSICONV> ==> inconnu par inconv, on ne fait rien"

Mais avec l'inclusion de cette commande, aucun URL a été détécté.
Voici une image du Terminal avec l'opération ci-dessus:

Notre script n'est pas complet et nous n'arrivons pas pour l'instant à détécter avec succès tous les URLS et ensuite les convertir.

Un autre petit souci concernant la mise en page: nous souhaitons mettre en place à l'extérieur des tableaux un fond de couleur mais nous n'y arrivons pas. Devons-nous l'écrire entre les bâlises table ou style? Est-ce que c'est bg color ou background ou ça n'a pas d'importance?


mercredi 23 novembre 2011

Problèmes d'encodage et commandes pour les résoudre

Il faudra encore un peu ajuster le script publié hier. En fait, aujourd’hui on s’est posées la question de l’encodage du fichier correspondant à la page aspirée de l’URL de départ. S’il n’est pas en UTF-8, il faudra le convertir en UTF-8. Donc, avant de faire le « dump », on doit contrôler l’encodage de départ ! Mais comment on repère l’encodage d’un fichier ?
Pour ce faire, on utilisera la commande file, comme dans l’exemple suivante :

file -i toto.txt
Le terminal donne come résultat : charset=utf-8
Il faut dire à la commande lynx qu’il fasse le « dump » selon cet encodage. Pour extraire l’encodage « utf-8 », il faut utiliser la commande cut : si on  imagine un fichier avec plusieurs colonnes, la commande cut nous permet d’extraire la colonne qui nous intéresse (la deuxième colonne, après l’« = »). On utilisera alors :
Cut –f (pour définir les colonnes)
Cut –d (pour spécifier le marquer de colonnes : dans notre cas, le marquer est le caractère « = »)
Cut –f2 –d (pour extraire la deuxième colonne après le « = »)
Comme ça, j’obtiens la valeur que je veux et je peux la stocker dans la variable « encodage » :
Encodage= $(file –i  toto.txt) | Cut –f2 –d=
En plus, on doit spécifier l’encodage de sortie, par exemple :
Lynx –dump –nolist –dc = $encodage ./PAGES-ASPIREES/3/2.html > toto.txt (doit être en UTF-8)

La commande iconv permet de transformer un encodage donné dans un autre encodage donné. Elle travaille avec un liste d’encodages qu’elle sait traiter, mais parfois elle rencontre un encodage inconnu : comment faire ? Pour repérer l’information qui nous sert, il faut contrôler l’encodage dans les balises HTML. Cette type d’information se trouvera après « charset ». Il faudra interroger le fichier de manière qu’il nous donne quelque chose comme « charset ». Pour ce faire, on peut utiliser la commande egrep : il s'agit d'une commande de filtrage. Elle va chercher un « motif », ou une chaine de caractères dans un fichier. Exemple:
Egrep “charset=” ./PAGES-ASPIREES/3/8.html (pipe) cut -f4 -d=

On doit utiliser la commande cut pour récupérer le charset et peut être que la personne qui a écrit la balise HTML n’a pas écrit le charset dans la bonne position. Donc, comment être sures du charset récupéré ? Comment peut-on récupérer la bonne colonne ? A quel niveau la personne a écrit la chaine de caractère « charset= » ?

Tout ce qu'on a, c'est une structure textuelle indéfinie et nous intéresse la chaine de caractère « charset= » pour pouvoir lancer une commande cut après. Mais l
a commande cut accepte des caractères singuliers et pas un groupe de caractères, donc il faut utiliser une variable ! Le caractère doit être non ambigu pour la commande cut. Ex. @ ou le "pipe", mais encore mieux #.
On va remplacer la chaine de caractères « charset= » par ce caractère là pour qu’il soit non ambigu. Pour ce faire, il faut utiliser une nouvelle commande : la commande sed. Il s'agit d'un éditeur de la ligne de commande: il peut rechercher et remplacer la chaine de caractères « charset= » par "pipe" : |
Sed –e “s/charset=/\|/” (pour déspécialiser, parce que c’est un operateur des expressions régulières)
Sed –e “s/charset=/\|/” | cut –d|

Mais "pipe" sert pour la direction de flux donc ce n’est pas un bon choix. Il faut indiquer qui est un caractère et le déspécialiser:

Sed –e “s/charset=/\|/” | cut –d“|” –f2
ou
Sed –e “s/charset=/\|/” | cut –d\| –f2
Le terminal donne comme résultat: iso-8859-1” />

Mais on ne veut pas la chaine de caractères «  ” /> ». Pour l'éliminer, on peut utiliser la commande cut et le caractère «  » comme délimitateur ou effacer ce qui reste en le remplaçant par rien :

Sed –e “s/\.*$// ”
. = n’importe quel caractère sauf le retour à la ligne
$ représente la fin d’une chaine / ligne
a* (a, aa, aaa…)

On a maintenant tous les instruments pour ajouter notre quatrième colonne!

mardi 22 novembre 2011

Prochaine étape: la commande Lynx

L'étape suivante de notre aventure est de créer des fichiers contenant le texte brut des pages aspirées et correspondant à nos URLs. Pour ce faire, nous allons utiliser une nouvelle commande : Lynx.

Le script: On a ajouté, grace à l'aide de notre camarade Thomas, la commande retourcurl et la commande lynx au script qu'on avait écrit pour aspirer les pages pour tous nos tableaux.



L'execution: D'abord, j'ai du installer la commande Lynx en tapant sudo apt-get install Lynx parce que le terminal disait que la commande était introuvable. Parfois, il n'a pas pu récupérer le texte, parce qu'il ne pouvait pas joindre le "host" ou il n'avait pas d'accès au fichier texte.


Le résultat: On a ajouté une colonne qui affiche le "status du curl" et une colonne qui affiche le link au texte brut.


On a créé des fichiers contenant le texte brut des pages aspirées dans le répertoire DUMP-TEXTE:


mercredi 16 novembre 2011

Pages Aspirées

La prochaine étape de notre projet est d'ajouter une autre colonne dans notre tableau de liens http avec les pages aspirées.

Objectif : Lire un fichier contenant une liste d'URL, produire un fichier HTML contenant un tableau (à 2 colonnes) regroupant (1) ces URLs et (2) les pages aspirées correspondantes. Etablir les liens vers les 2 ressources (URL, page locale).


Voici notre beau script qui nous a posé plusieurs problèmes sur nos machines (Mac et Linux) mais a finalement marché.

Pour l'exécution du script dans le Terminal nous avons eu plusieurs problèmes. D'abord le script écrit sur mon Mac n'exécutait pas sur une machine Linux. M. Daube nous a beaucoup aidé à le décoder et à corriger quelques erreurs de syntaxe, notamment, la commande let "j+=1"; que nous avons changé: j=$((j+1));. Pour exécuter ce sript nous nous sommes placées dans le répertoire PROJET-MOT-SUR-LE-WEB. Ensuite nous avons tapé: sh ./PROGRAMMES/scriptaspiration.sh < ./PROGRAMMES/input.txt
Petite note: Nous avons crée un fichier qui s'appelle input.txt qui contient 2 lignes: ./URLS
./TABLEAUX/tableaux-v7.html
En incluant ce fichier, nous évitons de taper à chaque fois quand nous exécutons notre script le nom du répertoire contentant les fichiers avec les liens http et le nom du fichier html où stocker ces liens.
Voici une image de l'exécution:



Et finalement, le résultat:

Il nous reste quelques modifications à faire pour rendre le tableau plus beau, mais ce serait pour un autre jour.

mardi 15 novembre 2011

A la récherche du contenu des nos liens!

L'étape suivante de notre aventure est d'aspirer les sites Internet correspondant à nos URLs, pour télécharger leur contenu. Pour se faire, nous allons utiliser deux nouvelles commandes : wget et curl.

wget permet d'aspirer le contenu d'un site web, qui sont enregistrées dans un server on line, depuis la ligne de commande.

curl permet d'ajouter une colonne indiquant si le téléchargement des pages web  s'est bien passé (0), ou s’il y a eu un erreur.

Le script: on utilise d'abord la commande wget pour aspirer le contenu des nos liens. On ajoute la commande au script qu'on vien d'écrir pour tous nos tableaux.


L'exécution donne des problèmes: pour chaque ligne des fichiers, le terminal dit qu'il n'y a aucun fichier à aspirer... On va réfléchir pour résoudre ce problème!

samedi 12 novembre 2011

Créer des tableaux pour tous les liens: français, anglais, italien

Objectif: créer plusieurs tableaux numérotés avec tous les liens sur chaque ligne

Résultat: 6 tableaux dans la même page .html, pour notre langue source, le français, et pour nos langues visées, l'italien et l'anglais.

Le script: dans ce cas, on ne peut plus insérer un seul fichier, mais il faut commander à la machine de lire tous nos fichiers contenant les URLs. Donc elle devra lire le répertoire qui contient les fichiers. On demandera la variable "rep" (répertoire) et le chemin relatif d'un fichier .html où stocker tous les tableaux. 
Le script contient deux boucles.  La première boucle permet d'afficher de lire le contenu du répertoire et d'exécuter la commande "for" pour tous les fichiers contenus dans le répertoire.



La boucle plus profonde permet de lire le contenu de tous les fichiers et d'exécuter la commande "for" pour tous les liens URLs contenus dans les fichiers.

L'exécution dans le terminal:


Le résultat final:

samedi 5 novembre 2011

Le script sur Ubuntu pour les URLs italiens

Il faudra un peu s’habituer à des autres systèmes opératifs… Donc, après avoir essayé Windows et Mac OS X, j’ai pensé d’installer Virtual Box dans mon ordinateur et puis Ubuntu. J’ai rencontré des problèmes au tout début, parce que mon ordinateur est doté de 2 Go de mémoire et d'une version à 32 bits. Donc, je ne pouvais pas suivre tous les conseils de la petite guide du Prof. Rachid. Toutefois, grâce aux conseils des mes camarades Ilaine et Thomas (et l’immanquable soutien de Ardas), j’ai finalement réussi à installer Ubuntu et je vais répéter notre exercice sur ce nouveau terminal !

Objectif: créer un tableau numéroté avec un lien html sur chaque ligne pour les URLs italiens

Résultat: 2 tableaux - Ardas a fait ça pour notre langue source, le français, un tableau des liens de cinéma et un autre pour les liens de théâtre, et l'anglais, sa langue maternelle. Je vais faire la même chose pour l'italien!

Premier problème: le script déjà créé et publié ne marche pas sur Ubuntu... Il faut donc utiliser des nouvelles astuces: par exemple, il faudra remplacer les parenthèses "{" et "}"par "do" et "done".

Deuxième problème: La formule "let "i+=1"" dans le script déjà publié ne marche pas (elle me donne une série de 1), et la première formule que j'avais écrit ($i=i+1) non plus. Il faut la changer et ajouter des parenthèses: i=$((i+1)).

Le script:

Exécution du script dans le terminal d'Ubuntu:


Et voilà les résultats sous Firefox pour les liens qui concernent le cinéma...


et pour les liens qui concernent le théâtre:

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 !

dimanche 30 octobre 2011

Quelques exercises


Une première 
exercise: créer un arborescence de travail:

Sur le terminal j'écris:

#!/bin/bash

#pour annoncer au terminal 
que je vais utiliser le langage bash pour la création de mon dossier
cd /
Users/macuser/Desktop/;
#je me place sur le bureau où je vais mettre mon dossier

mkdir PROJET-MOT-
SUR-LE-WEB;
#je crée un dossier racine 
entitulé PROJET-MOT-SUR-LE-WEB
cd PROJET
-MOT-SUR-LE-
WEB;
#je me place dans ce dossier pour créer des sous-dossier

mkdir CONTEXTES DUMP-TEXT IMAGES minigrepmultilingue-html PAGES-ASPIREES 
PROGRAMMES TABLEAUX URLS;
et voilà mon arborescense est crée!
Une deuxième exercise: écrire un script contenant votre nom sur une première ligne le mot que vous avez choisi sur une deuxième ligne dans le dossier PROGRAMMES permettant de génerer dans le répertoire DUMP-TEXT:
Je crée un document .sh dans un editeur de script comme Smultron et je l'enregistre dans le dossier PROGRAMMES. Ensuite, j'ouvre mon terminal.
Last login: Sun Oct 30 12:14:02 on ttys000
did75-10-82-230-84-51:~ macuser$ #bin/bash/
did75-10-82-230-84-51:~ macuser$ echo "Ardas KHALSA" > /Users/macuser/Desktop/PROJET-MOT-SUR-LE-WEB/DUMP-
TEXT/nomverbe.txt;
#je crée un fichier texte qui
s'appelle nomverbe.txt et j'ajoute une première ligne où s'affichera mon nom. Echo est une commande qui me permet d'écrire quelque chose sur le standard de sortie (l'écran)
did75-10-82-230-84-51:~ macuser$ echo "Notre mot est \"jouer\"" >>
/Users/macuser/Desktop/PROJET-MOT-SUR-LE-WEB/DUMP-TEXT;
#j'ajoute une deuxième ligne où s'affichera le mot choisi.
-bash: /Users/macuser/Desktop/PROJET-MOT-SUR-LE-WEB/DUMP-TEXT: Is a directory
#il y a un problème!
did75-10-82-230-84-51:~ macuser$ echo "Notre mot est
\"jouer\"" >> /Users/macuser/Desktop/PROJET-MOT-SUR-LE-WEB/DUMP-TEXT/nomverbe.txt;
#j'avais oublié d'ajouter le nom du fichier. Cette fois ci, c'est bon.
Une troisième exercice: écrire un script qui est un fichier html contenant un tablea avec deux lignes; sur la première mon nom et sur le deuxième le mot choisi, dans le dossier PROGAMMES permettant de générer dans le répertoire TABLEAUX.

D'abord j'écris 
mon texte:













Ensuite j'exécute mon scripte dans mon Terminal.
Et voilà!
Nouvelle astuce: Pour capturer une image sur mon ordinateur Sur un Mac j'appuie sur les touche apple + majuscule + 4 pour activer l'appareil. Ensuite le pointeur en flèche de la souris va se transformer en pointeur cruciforme. J'appuie sur la barre d'espace , le pointeur cruciforme va se transformer en un appareil photo. J'appuie sur le bouton de la souris et mon Mac émet un bruit d'appareil photographique. L'image est enregistrée sur mon ordinateur et peut être afficher sur mon blog facilement.