TP - 4-Traitement de Données Textuelles
TP - 4-Traitement de Données Textuelles
TP - 4-Traitement de Données Textuelles
DE SAINT-LOUIS Informatique
• Afficher le contenu d’un fichier texte avec cat et du texte echo, yes
• Savoir rediriger la sortie d’une commande vers un fichier
• Savoir manipuler les tubes Unix
• Utiliser les filtres pour manipuler la sortie avec more,less,cut, grep, wc, …
• Savoir manipuler les expressions régulières avec la commande grep
PREREQUIS :
Ce TP est accompagné d’un matériel à récupérer constitué de :
Commande echo(1) :
Commande cat(1)
b. cat –n /etc/lsb-release
c. cat –n /etc/lsb-release /etc/hosts
2/20
d. cat /bin/echo
Commandes yes et wc
3/20
9. Lisez la page manuelle de la commande wc et dites ce qu’affichent les commandes
suivantes :
a. wc –l /etc/password
b. wc –w /etc/password
c. wc –c /etc/password
d. wc /etc/password
• L’entrée standard (numéro 0) : les données lues par le programmes viennent de ce fichier (le
clavier en général),
• La sortie standard (numéro 1) : les informations « normales » à afficher sont écrits dans ce
fichier (l’écran en général)
• La sortie des erreurs (numéro 1) : vers lequel le processus écrit les erreurs à afficher (l’écran
en général)
Pour des raisons de commodité, il peut être nécessaire de parfois sauvegarder la sortie standard ou
des erreurs dans un fichier ou d’injecter un fichier dans l’entrée standard. La redirection consiste au
remplacement de l’un de ces fichiers par défaut par un autre fichier (sur disque).
1
Le caractère supérieur
4/20
b. Redirigez la sortie standard de la commande (ce qu’elle affiche) vers un fichier
nommé /tmp/sortie_std_ls en exécutant la commande suivante :
ls / > /tmp/sortie_std_ls
c. Affichez le contenu du fichier /tmp/sortie_std_ls avec la commande cat et
comparez le son contenu avec résultat de la commande de la question 1.a.
5/20
b. Dans cette sortie est ce qu’il y a des erreurs ? Si oui lesquels ?
c. Redirigez la sortie des erreurs vers le fichier /tmp/sortie_err_ls en tapant la
commande ls /ugb /root /var 2> /tmp/sortie_err_ls
APPLICATION : La commande find affiche par défaut les erreurs sur le terminal, ceci peut
noyer les résultats trouvés dans un tas d’erreurs d’accès. Ecrire, une commande permettant de
séparer les erreurs et les fichiers réellement trouvés dans la commande find / -name "syslog"
1. Tapez les commandes suivantes qui permettent d’afficher respectivement les fichiers et les
répertoires dans le répertoire /etc
a. find /etc –type f
6/20
b. find /etc –type d
2. Le problème avec ces deux commandes c’est que l’affichage est trop rapide. Vous
allez contrôler l’affichage grâce aux tubes et aux commandes more et less.
a. More for less
i. Pour afficher la liste des fichiers dans /etc page par page tapez la
commande suivante : find /etc –type f | more
7/20
ii. Appuyez sur la touche [Entrée] pour afficher une ligne
supplémentaire
iii. Appuyez sur la touche [Barre Espace] pour afficher une page
supplémentaire
iv. Appuyez sur la touche [q] pour quitter
b. Less is more : La commande more est extrêmement limitée. Elle ne peut pas
par exemple pas remonter sur les pages ni utiliser les touches de direction…
La commande less offre ces fonctionnalités avancées
i. Pour afficher la liste des fichiers dans /etc page par page tapez la
commande suivante : find /etc –type f | less
8/20
iv. Appuyez sur la touche [q] pour quitter2
3. Pour une seconde application des tubes vous allez utiliser wc pour compter le
nombre de fichiers et de répertoires dans le répertoire /etc
a. Pour compter le nombre de fichiers tapez la commande suivante :
4. Les tubes peuvent aussi être enchainés les uns à la suite des autres. Mettez des
numéros de lignes sur la sortie de la commande find puis affichez le résultat pas à
pas en tapant la commande suivante :
2
Vous pouvez taper la touche H pour accéder à l’aide des commandes less ou more
9/20
APPLICATION : Ecrire une commande qui permet de compter le nombre de fichiers et de
répertoires dans votre machine. Cette commande doit être exécutée en tant que root.
3
Si vous voulez savoir à quoi sert cette commande, jetez un coup d’œil à la page manuelle
4
La commande cat net fait qu’ajouter des numéros sur les lignes
10/20
3. Affichez les dix dernières lignes de la sortie de dmesg
APPLICATION : Ecrire une seule commande qui permet d’afficher à la suite les 15 premières
lignes et les 20 dernières lignes de la sortie de dmesg. Ces lignes doivent être numérotées. Astuce :
le point-virgule permet de mettre deux commandes sur la même ligne.
11/20
c. Affichez la liste des utilisateurs en extrayant la première colonne de
/etc/passwd et utilisant le séparateur deux-points « : »
12/20
affiche la ligne correspondante. Le but de cet exercice est de pratiquer quelques options de grep.
Récupérez le package coreutils-8.22.tar.xz 5 fournit avec le TP.
5
Il est fourni en même temps que ce TP ou bien vous pourrez le télécharger ici
http://ftp.gnu.org/gnu/coreutils/coreutils-8.22.tar.xz
13/20
5. Recherchez le nom de Richard Stallman dans tous les fichiers sources en tapant la
commande suivante :
6. Utilisez l’option -l pour affichez la liste des fichiers sources contenant le nom de
Richard Stallman en tapant la commande suivante :
7. Utilisez l’option -n pour afficher le numéro des lignes dans les codes sources où se
trouve le nom de Richard Stallman en tapant la commande suivante :
14/20
8. L’option –r permet de faire une récursive sur tous les fichiers dans un répertoire
ainsi que tous ses sous-répertoires. Utilisez l’option -r pour affichez la liste des
fichiers dans le répertoire contenant le nom de Richard Stallman en tapant la
commande suivante :
APPLICATION :
Ecrire une seule commande qui compte le nombre de commandes dans le package coreutils qui
contiennent au moins une fois le message "Permission denied"
15/20
EXERCICE 5 : Expressions régulières et commande grep
La commande grep peut rechercher plus que des chaînes de caractères fixées comme
"Stallman", mais aussi un ensemble de chaînes de caractères partageant une propriété. Ces
propriétés sont exprimées à l’aide des expressions régulières. Une expression régulière est
une formule construite à partir de méta caractères pour définir un ensemble de texte.
Assurez-vous d’avoir le
dictionnaire français dans le fichier
6
liste.de.mots.francais.frgut.txt qui est fourni en même temps que ce TP.
6
Récupérez le dictionnaire contenant la liste des mots français
http://www.pallier.org/ressources/dicofr/liste.de.mots.francais.frgut.txt
7
Si vous voulez voir les mots en questions enlevez le –c à la fin de la commande
16/20
b. Afficher les mots de la langue française commençant par les lettres « abc »
en tapant la commande suivante :
b. Quels sont les mots français se terminant par les lettres "zz" ?
c. Application : quel est la commande pour afficher les lignes non vide d’un
fichier ? Indice regardez l’option –v de grep
3. Un seul caractère quelconque «.» (point)
a. Afficher les mots français de deux lettres commençant par la lettre «a » en
tapant la commande suivante :
17/20
b. Ecrire la commande qui vous permet d’afficher les mots français de trois
lettres commençant par la lettre « c » et se terminant par la lettre « n »
c. Ecrire la commande qui vous permet d’afficher tous les mots français de trois
lettres
4. Un caractère répétés plusieurs fois + (plus8) et * (étoile)
a. Affichez la liste des mots français commençant par a la lettre a suivi d’au
moins une fois la lettre b en tapant la commande suivante :
b. Affichez la liste des mots français commençant par a la lettre a suivi d’au
moins deux fois la lettre b en tapant la commande suivante :
8
Le méta caractère + étend une extension il est nécessaire d’utiliser l’option –E de grep
18/20
e. Que signifie l’expression régulière suivante "u.*g.*b.*" ? Exécutez le
dans une commande sur le fichier dictionnaire.
5. Ensemble de caractères [] (crochets)
a. Affichez le nombre de mots français commençant par z ou par w ou par x en
tapant la commande suivante :
19/20
AUTO-EVALUATION
Pour les actions de remédiation demandez à votre prof de TP ce qu’il faut faire en plus pour
acquérir les compétences que vous n’avez pas encore.
20/20