Linux - Maîtriser les filtres de commandes
À propos de ce cours
Sommaire
- Les expressions rationnelles
- Grep
- Sed
Programme du cours
Objectifs d'apprentissage
- Maîtriser les expressions rationnelles (regex) pour rechercher et manipuler du texte efficacement sous Linux.
- Utiliser la commande
greppour filtrer des fichiers ou des flux de données selon des motifs complexes. - Appliquer la commande
sedpour éditer et transformer du texte en flux ou dans des fichiers. - Comprendre comment combiner ces outils avec des pipes (
|) pour créer des chaînes de traitement puissantes. - Automatiser des tâches répétitives de traitement de texte grâce aux filtres Linux.
Public cible
Ce cours s'adresse aux administrateurs système, développeurs, analystes de données ou toute personne travaillant régulièrement avec des environnements Linux. Les utilisateurs intermédiaires souhaitant améliorer leur productivité en ligne de commande tireront particulièrement profit de ce contenu. Une connaissance de base du terminal Linux est recommandée.
Les expressions rationnelles
Les expressions rationnelles (regex) sont un langage puissant pour décrire des motifs dans du texte. Sous Linux, elles sont utilisées par de nombreux outils comme grep, sed, awk et bien d'autres. Ce module couvrira :
- La syntaxe de base des regex (caractères spéciaux, classes, quantificateurs)
- Les expressions étendues (ERE) et basiques (BRE)
- Des exemples pratiques de motifs pour rechercher des adresses email, numéros de téléphone, etc.
- Les performances et pièges courants à éviter
Grep
grep est l'outil fondamental pour rechercher du texte sous Linux. Nous explorerons :
- La syntaxe de base :
grep motif fichier - Les options utiles (-i, -v, -n, -r, -l)
- L'utilisation avec des regex avancées (-E, -P)
- Le contexte autour des matches (-A, -B, -C)
- Des cas d'usage concrets comme analyser des logs ou filtrer des résultats
Un exemple pratique : grep -E "^[A-Za-z]+@[A-Za-z0-9]+\.[a-z]{2,3}$" emails.txt trouvera toutes les adresses email valides dans un fichier.
Sed
sed (Stream EDitor) permet d'effectuer des transformations sophistiquées sur du texte. Ce module abordera :
- La structure des commandes sed :
sed 's/recherche/remplacement/' - Les substitutions globales (flag g) et spécifiques
- L'utilisation des backreferences (&, \1, \2...)
- La modification de fichiers en place (-i)
- Les commandes avancées (d pour delete, p pour print, etc.)
Exemple : sed -E 's/([0-9]{2})\/([0-9]{2})\/([0-9]{4})/\3-\2-\1/' dates.txt convertira des dates du format JJ/MM/AAAA en AAAA-MM-JJ.
Combinaison des outils
La véritable puissance de Linux réside dans la combinaison de ces filtres via les pipes. Vous apprendrez à :
- Chaîner grep, sed et d'autres commandes (
commande1 | commande2 | commande3) - Réduire progressivement des données complexes vers un format utile
- Optimiser les performances des pipelines
- Construire des scripts shell réutilisables
Exemple complet : cat access.log | grep "404" | sed -E 's/.*\[([^]]+)\].*"([^"]+)".*/\1 \2/' | sort | uniq -c produira un compte des URLs ayant généré des erreurs 404, avec leur timestamp.