Filtrez et analysez des informations depuis le terminal

Le fichier d'export est corrigé, beau travail ! Mais à peine le temps de souffler, votre équipe vous sollicite pour une nouvelle mission. On vous transmet cette fois un fichier de logs particulièrement volumineux. Vous l'avez constaté avec notre précédent export : parcourir un tel document ligne par ligne pour y trouver une information précise est tout simplement impossible !

Une fois le fichier compris, vous devez faire ressortir l’information utile parmi un grand volume de données.

Pour repérer rapidement l'information clé demandée par vos collègues sans avoir à lire le document en entier, nous allons procéder par étapes :

  • comprendre les flux et les redirections du terminal,

  • rechercher des informations pertinentes avecgrep,

  • analyser ces données par le tri et le comptage,

  • combiner des commandes pour explorer ces données efficacement.

Comprenez les flux et redirections du terminal

Avant de manipuler notre volumineux fichier de logs, il faut comprendre la mécanique de notre environnement de travail.

Mais concrètement, où vont les résultats quand je tape une commande ?

Sous Linux, chaque commande fonctionne comme une petite usine de traitement : elle reçoit des données en entrée, effectue sa tâche, et produit un résultat en sortie — ou un message d'erreur si quelque chose tourne mal. Ces trois canaux de communication sont appelés des flux.

Par défaut, la sortie standard s'affiche simplement sur votre terminal. Mais il est souvent utile de conserver ce résultat, par exemple pour le consulter plus tard ou tracer des erreurs. C'est là qu'intervient la redirection : un mécanisme qui permet de changer la destination d'un flux pour l'envoyer, par exemple, vers un fichier.

On utilise pour cela les symboles "chevron" de votre clavier :

  • Le chevron simple>redirige le résultat dans un fichier, mais attention : il écrase le fichier s'il existe déjà.

  • Le double chevron >>redirige la sortie et l'ajoute à la fin du fichier, sans rien effacer.

ls -l > liste_fichiers.txt   # crée ou écrase le fichier
ls -l >> liste_fichiers.txt  # ajoute ou crée à la suite

Recherchez des informations pertinentes avec grep

Face à notre fichier de logs, il faut réduire le bruit et isoler ce qui nous intéresse. La commandegrepest l'outil parfait pour cela : elle permet de rechercher des lignes contenant un mot ou un motif simple dans un fichier texte.

L'objectif est d'identifier des informations pertinentes pour l'équipe (comme un type d'erreur précis), et non de traiter automatiquement des fichiers complets.

Pour aller plus vite au quotidien, vous verrez dans la démonstration que grep propose des options très pratiques :  -i  pour rendre la recherche insensible à la casse (ignorer les majuscules/minuscules), et  -c  pour compter directement les occurrences trouvées au lieu d'afficher tout le texte.

Pour être encore plus précis,  grep  accepte l'utilisation d'expressions régulières simples (souvent abrégées en "Regex" ou plus rarement appelées “expressions rationnelles”). 

Par exemple, dans ce langage, le symbole  ^   signifie "début de ligne". Ainsi, si vous tapez la commande suivante :  grep "^ERROR" journal.logle terminal n'affichera que les lignes du fichier qui commencent très exactement par le mot "ERROR", en ignorant toutes les lignes où le mot se trouverait au milieu d'une phrase.

Dans cette vidéo, découvrez comment isoler rapidement des événements avec cette commande.

Dans cette vidéo, on a :

  • isolé des données pertinentes pour réduire le bruit grâce à la commandegrep,

  • affiné notre recherche avec l’option-i,

  • utilisé une expression régulière simple (^) pour affiner la précision de la recherche. 

Filtrer permet d’isoler les informations. Mais pour prendre une décision, il faut aller plus loin : mesurer, comparer et identifier des tendances.

Analysez des données par le tri et le comptage

Maintenant que vous savez isoler les erreurs, il est temps de les mesurer.

Mais comment identifier les types d’erreurs les plus fréquents sans parcourir tout le fichier ?

Les commandes  sort  ,  uniq  et  wc  viennent à votre rescousse ! Elles permettent respectivement de trier, compter et mesurer des données textuelles.

Vous les lancez pour observer instantanément des volumes ou des fréquences. Le terminal fait le calcul, et c'est ensuite à vous d'interpréter le résultat de l’analyse, sans avoir besoin de créer une automatisation complexe.

Vous pouvez utiliser ces commandes avec des options très utiles :

  • wc -l: L'option -l(pour lines) permet de compter le nombre total de lignes d'un fichier.

  • sort: Trie le contenu du fichier par ordre alphabétique.

  • uniq -c: L'option-c(pour count) compte le nombre de répétitions consécutives. C'est pourquoi on l'utilise toujours sur un résultat préalablement trié !

  • sort -nr: Une fois vos éléments comptés, vous pouvez les trier à nouveau avec les options-n(numérique) et-r (inversé, pour reverse) afin d'afficher les erreurs les plus fréquentes tout en haut de votre écran.

Le tri et le comptage transforment des données brutes en information exploitable.

Voyons comment passer d'un fichier brut à un diagnostic clair des erreurs les plus fréquentes en quelques secondes !

Dans cette vidéo, on a :

  • mesuré rapidement le nombre de lignes avec la commandewc -l,

  • vu le résultat évoluer de l'état brut à l'état trié avecsort,

  • compté les occurrences avec sort | uniq -c,

  • trié les occurrences par fréquence avec la combinaisonsort | uniq -c | sort -nr,

  • interprété ces résultats pour repérer visuellement les tendances majeures.

Combinez des commandes pour explorer des données

Nous avons vu plusieurs outils redoutables pour mener notre investigation sur le serveur. Cependant, imaginez devoir créer un fichier temporaire après chaque étape : un fichier pour le filtre, un autre pour le tri, encore un autre pour le comptage... Votre espace de travail serait vite encombré et vous perdriez un temps précieux !

Mais comment puis-je appliquer toutes ces actions à la suite sans sauvegarder de fichiers intermédiaires ?

C'est ici qu'intervient un concept central de Linux : le pipe (le symbole  |  sur votre clavier, qui se traduit par "tube").

commande1 | commande2

Cette petite barre verticale est pratique : elle permet de transmettre directement le résultat d’une commande vers l'entrée de la suivante. Vous l’avez vu dans la section précédente. 

Plutôt que d'utiliser une commande unique et très complexe pour tout faire, la logique de Linux consiste à enchaîner plusieurs commandes simples (comme filtrer, trier, compter), chacune accomplissant une tâche bien définie. Imaginez une véritable chaîne de montage : la donnée brute entre, passe par le premier outil, ressort nettoyée et file directement dans le deuxième outil !

Dans cette vidéo, on vous montre comment construire cette chaîne de montage étape par étape pour obtenir un diagnostic immédiat et trouver l'origine du plantage.

Dans cette vidéo, on a :

  • transmis les données de commande en commande sans fichiers intermédiaires grâce au pipe (|),

  • vu la chaîne s'allonger progressivement pour comprendre le rôle de chaque outil,

  • limité l'affichage final avec la commandeheadpour ne conserver que l'essentiel,

  • exploré visuellement notre fichier d'activité complexe en une seule ligne de commande.

À vous de jouer

Contexte 

Votre équipe vous transmet un fichier d'activité (nommé journal_evenements_10000.log). Ce document texte contient une longue liste de messages et d'événements système, classés par statuts simples (comme  INFO  ,  WARNING  , ou  ERROR  ). Le problème ? L'application a généré des dizaines de milliers de lignes cette nuit et l'équipe a besoin d'un diagnostic immédiat. Votre mission est de répondre à une question cruciale sans avoir à lire le document dans son intégralité : quel type d’événement apparaît le plus souvent dans le fichier ?

Préparation de l’environnement 

Avant de commencer, assurez-vous que le fichier est bien disponible sur votre machine virtuelle et que votre terminal est positionné dans votre dossier personnel. Si besoin, référez-vous à la procédure de téléchargement décrite dans l'activité du chapitre “Lisez et modifiez des fichiers texte depuis le terminal”.

Consignes 

Pour accomplir cette tâche et repérer cette information clé, vous allez devoir construire votre propre chaîne de traitement :

  • Filtrez le fichier avecgreppour ne conserver que les lignes pertinentes (afin d'éliminer le bruit et ne garder que les messages contenant des statuts).

  • Triez et comptez les occurrences avecsortetuniq -cde ces statuts pour faire ressortir une information exploitable, c'est-à-dire la fréquence d'apparition de chaque type d'événement.

  • Combinez vos commandes (au moins deux) à l'aide du pipe (|) pour affiner votre analyse et faire remonter automatiquement le statut le plus fréquent tout en haut de votre écran.

En résumé

  • Les flux standards et les redirections permettent de contrôler la destination des entrées et sorties du terminal, notamment grâce aux symboles>et>>pour écrire ou ajouter des résultats dans un fichier.

  • La commandegreppermet de rechercher et d’isoler des informations pertinentes dans un fichier texte, avec des options comme-ipour ignorer la casse et-cpour compter les occurrences.

  • Les commandessort,uniqetwcfacilitent l’analyse des données en triant les résultats, en comptant les répétitions et en mesurant le volume d’informations.

  • Le tri et le comptage transforment des données brutes en informations exploitables, permettant d’identifier rapidement des tendances ou des anomalies.

  • Le pipe |permet d’enchaîner plusieurs commandes afin de filtrer, trier et analyser des données en une seule ligne, sans créer de fichiers intermédiaires.

L'information clé est désormais bien identifiée ! Vous savez isoler les événements les plus fréquents au milieu de dizaines de milliers de lignes en une seule commande. Cependant, votre mission d'investigation n'est pas tout à fait terminée : l'information est trouvée, mais son affichage brut à l'écran comporte encore des éléments inutiles et n'est pas optimisé pour être partagé facilement avec le reste de l'équipe. Comment nettoyer rapidement ces données à la volée et reformater leur présentation pour les rendre parfaitement claires ? C'est ce que nous allons découvrir en préparant et transformant nos données textuelles.

Et si vous obteniez un diplôme OpenClassrooms ?
  • Formations jusqu’à 100 % financées
  • Date de début flexible
  • Projets professionnalisants
  • Mentorat individuel
Trouvez la formation et le financement faits pour vous