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 ou logiciel.

  • 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 mot ordinateur.

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 de logiciels1 par logiciels [1]. Une fois que vous-vous êtes assuré que le remplacement est bien fait, modifiez votre commande pour que sed modifie le fichier en place.

  • Affichez le fichier en supprimant toutes les occurrences du mot applicatifs après le mot logiciels.

  • Affichez le fichier en remplaçant toutes les occurrences de Windows et Mac OS par XXX.

  • Affichez le fichier en remplaçant toutes les références de la forme [i] (avec i 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.