TP #5 : Filtrage et script
Responsables : Jean-Patrick Gelas, Nicolas Louvet
Version : 0.1a (11/2021)
Exercice 1 : filtrage avec grep et édition avec sed
Téléchargez le fichier fichiers.tgz, puis désarchivez-le.
Dans toutes les questions suivantes, on vous demande de chercher de
l’information dans le fichier se.txt
. Les questions suivantes se font bien
avec grep -e
, en ajoutant éventuellement un petit wc
.
- Affichez toutes les lignes qui contiennent le mot
ordinateur
.
- Affichez toutes les lignes qui terminent par le mot
ordinateur
.
- Affichez les lignes qui contiennent l’un des mots
ordinateur
,programme
oulogiciel
.
- Comptez le nombre de lignes vides que contient le fichier.
- Afficher toutes les lignes sauf les lignes vides.
- Afficher toutes les lignes qui commencent par une Majuscule.
- Afficher toutes les lignes non-vides qui ne commencent pas par une majuscule (donner deux méthodes).
- Afficher toutes les lignes qui contiennent un nombre, puis celles qui contiennent un nombre entre crochets, puis celles qui commencent par un nombre entre crochets.
- Consultez la page de manuel pour
grep
, et interessez-vous à l’option-o
. Donnez ensuite une commande pour compter le nombre d’occurrences du motordinateur
.
Remarque : Les questions suivantes impliquent la commande sed
, et se font
bien avec l'option -e
. Elles font toujours référence au même fichier,
se.txt
.
- Affichez le fichier sur la sortie standard, en utilisant
sed
de façon à remplacer toutes les occurrences delogiciels1
parlogiciels [1]
. Une fois que vous-vous êtes assuré que le remplacement est bien fait, modifiez votre commande pour quesed
modifie le fichier en place.
- Affichez le fichier en supprimant toutes les occurrences du mot
applicatifs
après le motlogiciels
.
- Affichez le fichier en remplaçant toutes les occurrences de
Windows
etMac OS
parXXX
.
- Affichez le fichier en remplaçant toutes les références de la forme
[i]
(aveci
un entier) par*** i ***
.
Exercice 2 : un script pour collecter des infos sur le processeur
Le fichier /proc/cpuinfo
est mis à jour par le noyau Linux, et
contient des informations sur votre processeur. Affichez le contenu de
ce fichier avec cat
. Vous pouvez observer que :
-
vous avez des informations détaillées pour chacun des cœurs du processeur.
-
les lignes
processor
donnent le numéro de chaque cœur en partant de 0 (si k est le numéro du dernier cœur à s’afficher, alors k+1 est le nombre de cœurs). -
les lignes
model name
donnent à chaque fois le modèle du processeur. -
les lignes
cpu MHz
donnent la fréquence de chaque cœur : on va dire que la fréquence du dernier cœur est celle du processeur.
Ecrivez un script mycpu.sh
pour afficher le nombre de
cœurs du processeur, le modèle du processeur, et sa
fréquence. Par exemple, cela pourra donner :
sweet@heart:~/TP$ ./mycpu.sh
Votre processeur comporte 4 coeurs
Son modèle est : "Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz"
Actuellement, la fréquence est de 1400 MHz
Pour aboutir à une solution, commencez par faire des tests en ligne de
commande. Vous pouvez utiliser au choix une combinaison de grep
, cut
, awk
, sed
, echo
,
expr
et les variables du shell.
Félicitation ! Vous avez terminé le TP #5.