Préparation LPI - Text Filters and Commands

État du sujet d'examen Le document source fourni est un support de cours (Préparation LPI 101, sujet 103.2) et ne pose aucune question d'examen explicite. Les données d'entrée ou énoncés d'exercices étant absents, il n'y a pas de problème direct à résoudre.

D'après le document Préparation LPI - Text Filters and Commands

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

Préparation LPI - Text Filters and Commands

Document source

Préparation LPI - Text Filters and Commands

Linux Command Line and Text Processing · PDF · 42 pages · 2010

Afficher l'aperçu du document

Consulter le document original →

État du sujet d'examen

Le document source fourni est un support de cours (Préparation LPI 101, sujet 103.2) et ne pose aucune question d'examen explicite. Les données d'entrée ou énoncés d'exercices étant absents, il n'y a pas de problème direct à résoudre.

Toutefois, dans le but de vous aider à comprendre ce document, voici l'explication détaillée des manipulations et commandes présentées dans les diapositives.

Analyse des manipulations de flux et de filtres

Utilisation de la commande cat

Le document rappelle que les commandes agissent sur des flux (l'entrée standard, la sortie standard et la sortie d'erreur) et illustre l'affichage simple, la concaténation de plusieurs fichiers et la création de fichier via redirection.

cat liste2 liste3 liste1

Cette commande concatène les trois fichiers dans l'ordre exact de leur appel. Le document montre également l'usage d'options d'affichage avec cat -A (équivalent aux options combinées vET) pour afficher les caractères non imprimables, comme les tabulations (affichées ^I) et les marqueurs de fin de ligne.

Découpage des fichiers avec split

La commande split permet d'éclater un fichier en plusieurs parties.

split -b 10 ficsplit1 bouts

Dans cet exemple, le fichier est découpé en morceaux d'une taille stricte de 10 octets grâce à l'option -b 10. Le préfixe bouts est ajouté aux fichiers générés, qui prendront automatiquement les suffixes alphabétiques aa, ab, ac, etc.

Inspection du contenu avec od

La commande od (octal dump) permet de visualiser le contenu exact d'un fichier, y compris les caractères d'espacement et les sauts de ligne invisibles.

od -t c liste1

L'option -t c formate la sortie en caractères ASCII. L'exemple du document montre clairement que les sauts de ligne apparaissent sous la forme \n et les tabulations sous la forme \t.

Conversion avec expand et unexpand

Ces commandes servent à convertir les tabulations en espaces (expand) et inversement (unexpand). Le document utilise l'option -t pour définir le nombre d'espaces représentant une tabulation lors de la conversion. Note technique : L'extraction PDF du document source a généré des caractères inattendus dans la sortie de l'exemple od -a liste2 (comme C ( r e). J'ai ignoré ce dommage lié à l'encodage du PDF original sur les caractères accentués ; les commandes documentées restent parfaitement valides.

Remplacement de caractères avec tr

La commande tr fonctionne exclusivement sur des flux (et non sur des fichiers passés en argument).

tr -s ' ' < liste2

L'option -s (squeeze) supprime les répétitions consécutives du caractère spécifié (ici l'espace). Le document illustre également l'utilisation de tr pour convertir les caractères de fin de ligne de type UNIX en format chariot.

Tri et jointure avec sort et join

Pour pouvoir utiliser la commande join, il est impératif que les deux fichiers soient préalablement triés sur le champ qui servira à la jointure.

sort -n -k2 table1 > table1.sort
sort -n -k1 table2 | join -1 2 -2 1 table1.sort -

Dans cet exemple complexe, on effectue d'abord un tri numérique (-n) de la table 1 en se basant sur la deuxième colonne (-k2). Ensuite, on effectue un tri numérique sur la table 2 (colonne 1) que l'on envoie dans un tube (pipe). La commande join effectue alors la correspondance entre la colonne 2 du premier fichier (-1 2) et la colonne 1 du deuxième fichier (-2 1). Le tiret final (-) est crucial : il indique à join de lire le second flux de données depuis l'entrée standard (le résultat du pipe) plutôt que depuis un fichier sur le disque.

Édition de flux avec sed

La commande sed modifie le texte à la volée.

sed -e 's/^M /Monsieur /' table4

L'instruction de substitution s est utilisée avec une expression régulière. Le motif cible la lettre M suivie d'un espace, mais l'ancrage de début de ligne indique que cette correspondance ne s'applique que si la ligne commence par ce motif. Le texte trouvé est remplacé par "Monsieur ". L'ajout d'une adresse de ligne (comme 1,2s/... dans un autre exemple du document) limite cette substitution uniquement aux lignes 1 et 2.

Méthode

Pour réussir une épreuve portant sur les filtres et flux de texte (objectif LPI 103.2), voici l'approche à adopter :

  1. Identifier la source des données : Comprenez toujours d'où proviennent les données dans la syntaxe. S'agit-il d'un fichier texte passé en argument, ou de l'entrée standard alimentée par un tube (|) ou une redirection (<) ?
  2. Mémoriser les options discriminantes : Les questions d'examen testent souvent votre capacité à distinguer des options proches. Par exemple, mémorisez bien que pour la commande sort, l'option -n effectue un tri numérique (10 sera placé après 2) tandis que -d effectue un tri alphabétique.
  3. Respecter les prérequis algorithmiques : Rappelez-vous que certaines commandes nécessitent une structure de données précise pour fonctionner correctement. C'est le cas de join et uniq, qui exigent toujours que les flux en entrée soient triés au préalable avec sort.
  4. Décomposer les expressions régulières : Pour une commande sed, analysez toujours le motif morceau par morceau. Repérez les ancrages de début ou de fin de ligne, le délimiteur utilisé, et les éventuels modificateurs en fin d'instruction.

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