Sanchuan Wang
2015-2016, L3S5
Enseignant: S. Fleury
Partie 2

Voici la deuxième partie des exercices

I. Jokers et expressions régulières

Questions 1-6

1. Vous avez chez vous des fichiers appelés essai1, essai2, essai3 et essai4. Comment les effacer en une seule ligne de commande ?

Réponse: Il existe plusieurs façons possibles:
-La plus bête: $ rm essai1 essai2 essai3 essai4
-Avec regex: $ rm essai[1234]
-Avec regex avancée: $ rm essai[1-4]

2. Dans mon répertoire d'accueil, j'ai un certain nombre de fichiers avec un suffixe .c. Je désire les regrouper dans un répertoire que j'appelerai C/. Quelles sont les commandes que je dois taper ?

Réponse:
Première étape: $ mkdir C pour créer le répertoire C.
Deuxième étape: $ mv *.c C pour déplacer tous les fichiers se terminant avec .c dans le répertoire C.

3. Vous désirez regrouper dans un répertoire Rangement les fichiers dont le nom contient un caractère minuscule suivi d'un caractère majuscule. Quelle(s) est/sont la/les commande(s) à donner ?

Réponse: Comme dans 2, ils faut d'abord créer le répertoire: $ mkdir Rangement
Ensuite, la regex à utiliser est *[a-z][A-Z]* pour tous les fichiers contenant un caractère majuscule ou minuscule. Alors la commande est $ mv *[a-z][A-Z]* Rangement

4. Même chose avec les fichiers dont le nom contient trois voyelles à la suite.

Réponse: $ mkdir Rangement étant déjà fait, ça suffit de changer la regex en *[aeiouéèêâëïäü][aeiouéèêâëïäü][aeiouéèêâëïäü]*. Alors la commande est *$ mv [aeiouéèêâëïäü][aeiouéèêâëïäü][aeiouéèêâëïäü]* Rangement
Attention: Les diacritiques sont pris en compte ici. Y n'est pas considéré comme voyelle.

5. En utilisant ls et grep, affichez la liste des fichiers dans /bin dont le nom :
Commence par «a» et dont la deuxième lettre est «s» ou «t»;
Contient «un» et se termine par «t»;
Contient «gre» ou «st»;
Contient exactement deux lettres «m»;
Contient au moins deux lettres «m»;
Contient au moins quatre caractères et aucun chiffre;
Est constitué de deux lettres exactement;
Commence et finit par un chiffre.

Réponse: Les expressions régulières suivantes correspondent aux énoncés respectivement.
-$ ls | grep '^a[st].*'
-$ ls | grep '.*un.*t$'
-$ ls | grep '\(gre\|st\)'
-$ ls | grep '[^m]*m[^m]*m[^m]*'
-$ ls | grep '.*m.*m.*'
-$ ls | grep '^[^0-9]\{4,\}$'
-$ ls | grep '^..$'
-$ ls | grep '^[0-9].*[0-9]$'

6. Comment éliminer les lignes vides dans un fichier ? Comment éliminer les lignes ne contenant que des blancs ?

Réponse: Pour les lignes vides: $ grep '^$' fichier. Pour les lignes ne contenant que des blancs: $ grep '^[[:space:]]$' fichier. Pour les éliminer: $ grep -v '\(^[[:space:]]$\|^$\)' fichier1 > fichier2


II. Exercices sur Germinal (fichiers dans la zone TP)

1. Combien de fois le mot «mine» apparaît dans chaque chapitre de la première partie de Germinal ?

Commentaire: Il n'existe pas de fichier Germinal.

2. Combien y a-t-il de lignes blanches dans zola1.txt ?

Commentaire: Il y a 81 lignes blanches.


head et tail

1. Affichez les 15 premières lignes du fichier /etc/hosts, les 15 dernières lignes, toutes les lignes à partir de la quinzième, les lignes 15 à 20.

Réponse:
$ head -15 /etc/hosts
$ tail -15 /etc/hosts
$ tail +15 /etc/hosts
$ head -20 /etc/hosts | tail -6

2. Récupérer les lignes 5 à 9 d'un fichier de 12 lignes.

Réponse: $ head -9 fichier | tail -5.

3. Comment afficher la cinquième ligne d'un fichier ?

Réponse: $ head -5 fichier | tail -1 .


Fin de la deuxième partie. Retour en haut de page ou Retour à l'accueil

Partie II - Plan

Jokers et expressions régulières
-Questions 1-6

Exercices sur Germinal (fichiers dans la zone TP)
-Questions 1-2
-Head et tail: Questions 1-3