Encapsulation et concepts de POO

Ce TP permet de se familiariser avec les outils Unix AWK et SED pour le traitement de texte et la manipulation de fichiers. Il propose une série d'exercices pratiques visant à écrire des commandes et scripts pour extraire, modifier ou analyser des données textuelles.

D'après le document Encapsulation et concepts de POO

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Encapsulation et concepts de POO

Document source

Encapsulation et concepts de POO

Object-Oriented Programming (OOP) · PDF · 4 pages · 2000

Afficher l'aperçu du document

Consulter le document original →

Ce TP permet de se familiariser avec les outils Unix AWK et SED pour le traitement de texte et la manipulation de fichiers. Il propose une série d'exercices pratiques visant à écrire des commandes et scripts pour extraire, modifier ou analyser des données textuelles. Ce laboratoire nécessite un environnement Unix avec AWK et SED installés, ainsi que des connaissances de base en ligne de commande et en expressions régulières.

Objectifs

  • Maîtriser l'utilisation d'AWK pour le traitement de fichiers texte.
  • Écrire des scripts AWK pour filtrer, compter et transformer des données.
  • Utiliser SED pour modifier et extraire des informations dans des fichiers.
  • Comprendre les expressions régulières appliquées à AWK et SED.
  • Appliquer des commandes Unix pour automatiser des tâches courantes de manipulation de texte.

Prérequis et installation

  • Un système Unix ou Linux avec accès au terminal.
  • AWK et SED installés (version standard disponible sur la plupart des distributions).
  • Connaissances de base en ligne de commande Unix.
  • Notions élémentaires d'expressions régulières.

Partie I : AWK

Exercice 1 : Commandes AWK de base

Écrire des commandes ou scripts AWK pour réaliser les traitements suivants :

  1. Afficher la nième ligne d’un fichier.
  2. Compter le nombre de mots d’un fichier.
  3. Afficher les lignes de plus de 80 caractères.
  4. Afficher les lignes qui contiennent exactement deux champs.
  5. Afficher la liste des champs de chaque ligne dans un ordre inversé.
  6. Compter le nombre de lignes qui contiennent la chaîne "l2ti".
  7. Afficher toutes les lignes dont le premier champ est différent de celui de la ligne précédente.

But : Ces exercices permettent de manipuler les champs et lignes dans AWK, d'utiliser des conditions et des variables internes.

Résultat attendu : Chaque commande doit afficher ou compter correctement selon la consigne, par exemple la nième ligne, ou les lignes avec un certain nombre de champs.

Exercice 2 : Recherche de mots avec trois majuscules adjacentes

Écrire un script AWK qui affiche tous les mots contenant au moins trois lettres majuscules consécutives.

But : Utiliser les expressions régulières dans AWK pour filtrer des mots selon un motif précis.

Résultat attendu : Liste des mots respectant la condition.

Exercice 3 : Fichiers accessibles en lecture uniquement par les autres utilisateurs

Écrire un script AWK pour afficher tous les fichiers qui sont accessibles uniquement en lecture par les autres utilisateurs.

But : Analyser les permissions des fichiers et filtrer selon les droits d'accès.

Résultat attendu : Liste des fichiers avec la permission lecture pour "others" uniquement.

Exercice 4 : Dates de connexion des utilisateurs propriétaires de fichiers lisibles par les autres

Écrire un script AWK pour afficher les dates de connexion des utilisateurs propriétaires des fichiers ayant la permission de lecture pour les autres utilisateurs.

But : Croiser les informations de fichiers et utilisateurs pour extraire des données spécifiques.

Résultat attendu : Dates de connexion affichées pour les utilisateurs concernés.

Exercice 5 : Lignes avec premier champ différent du précédent

Écrire une commande AWK permettant d’afficher toutes les lignes dont le premier champ est différent de celui de la ligne précédente.

But : Détecter les changements dans le premier champ d’un fichier.

Résultat attendu : Affichage uniquement des lignes où le premier champ change.

Exercice 6 : Simulation de la commande uniq

Écrire un script AWK qui élimine les lignes redondantes et vides d’un fichier, simulant la commande « uniq ».

But : Apprendre à gérer les doublons et les lignes vides avec AWK.

Résultat attendu : Fichier filtré sans lignes répétées ni lignes vides.

Exercice 7 : Vérification du nombre de champs dans un fichier

Écrire un programme AWK qui vérifie que tous les enregistrements (lignes) d’un fichier donné ont le même nombre de champs que le premier enregistrement. Le fichier utilise ":" comme séparateur de champs.

Le script doit :

  • Afficher pour chaque ligne erronée son nombre de champs.
  • Afficher à la fin le nombre total d’enregistrements.
  • Afficher le nombre d’enregistrements erronés (ceux ayant un nombre de champs différent).

Exemple d’exécution :

$ cat test
nom:prenom:ville:telephone:fax
berger:jaques:paris:0639442212:0122339845
ben said:hamadi :71221993::

durond:marcel:marseille

$ awk -f count.awk test
Chaque enregistrement doit comporter 5 champs
Enregistrement 4 a 3 champs
Le fichier test possède 4 enregistrements
Le fichier test comporte 1 enregistrement(s) erroné(s)

But : Contrôler la cohérence des données dans un fichier structuré.

Résultat attendu : Messages indiquant les lignes erronées et le bilan final.

Partie II : SED

Commandes SED à réaliser

Donner des commandes SED permettant les traitements suivants :

  1. Afficher les lignes contenant trois majuscules successives.
  2. Remplacer les mots "Computer" ou "comuter" par "COMPUTER".
  3. Encadrer le premier nombre de chaque ligne avec des **.
  4. Afficher un fichier à partir de la onzième ligne.
  5. Imprimer les lignes commençant par le mot "From".
  6. Supprimer les lignes contenant une chaîne donnée.
  7. Supprimer les lignes ne contenant pas une chaîne donnée.
  8. Tester et noter la signification des commandes suivantes :
    - sed "s/toto/TOTO/" fichier
    - sed "s/toto/TOTO/3" fichier
    - sed "s/toto/TOTO/g" fichier
    - sed "s/toto/TOTO/w resultat" fichier
  9. Inverser l’ordre de la première et la deuxième colonne d’un fichier.
  10. Entourer chaque nombre contenu dans un fichier par deux "a".
  11. N’afficher que les lignes contenant le nombre 55 d’un fichier donné.

But : Apprendre à utiliser SED pour filtrer, modifier et transformer des fichiers texte.

Résultat attendu : Chaque commande doit produire le résultat demandé, par exemple afficher les lignes avec trois majuscules consécutives ou remplacer certains mots.

Résultats attendus

  • Affichage correct des lignes ou mots selon les critères (nombre de champs, motifs, longueur).
  • Comptages exacts (nombre de mots, lignes contenant une chaîne, enregistrements erronés).
  • Scripts AWK fonctionnels pour filtrer, inverser l’ordre des champs, simuler uniq.
  • Commandes SED effectuant les remplacements, suppressions et affichages demandés.
  • Messages clairs lors de la vérification du nombre de champs dans les fichiers.

Pièges courants

  • Ne pas oublier que AWK utilise par défaut l’espace comme séparateur de champs, sauf indication contraire (exemple : -F":" pour les fichiers séparés par ":").
  • Confondre le numéro de ligne et le numéro de champ dans AWK.
  • Oublier de gérer les lignes vides dans les scripts AWK, ce qui peut fausser les résultats.
  • Dans SED, mal utiliser les expressions régulières, notamment pour les majuscules successives ou les délimiteurs.
  • Ne pas tester les scripts sur des fichiers d’exemple avant de les appliquer sur des fichiers réels.
  • Pour la commande uniq simulée, ne pas oublier de comparer la ligne courante avec la précédente.
  • Dans les scripts AWK, bien gérer la variable NR (numéro de ligne) et la variable NF (nombre de champs).

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions