Unix / Linux - Pipes and Filtres

Salut à toi, futurs magiciens Unix/Linux ! Aujourd'hui, nous allons entreprendre un voyage passionnant à travers le monde des tuyaux et des filtres. Ne t'inquiète pas si tu es nouveau dans le domaine de la programmation - je vais te guider pas à pas, comme j'ai fait pour des centaines d'étudiants au fil des ans. C'est parti !

Unix / Linux - Pipes & Filters

Qu'est-ce que les tuyaux et les filtres ?

Avant de rentrer dans les détails, comprensons ce que sont les tuyaux et les filtres. Imagine que tu es dans une cuisine, en train de préparer un délicieux repas. Tu as différents ustensiles qui effectuent une tâche spécifique - un couteau pour couper, un mixeur pour mélanger, un tamis pour, eh bien, tamiser ! Dans Unix/Linux, les tuyaux et les filtres fonctionnent de manière similaire.

  • Les filtres sont des commandes qui prennent un input, le traitent et produisent un output.
  • Les tuyaux sont les " tuyauteries " qui relient ces filtres, permettant aux données de circuler d'une commande à une autre.

Ensemble, ils forment un système puissant pour le traitement et la manipulation des données. Maintenant, penchons-nous sur certains des commandes les plus courantes et utiles.

La commande grep

Qu'est-ce que grep ?

grep signifie "Global Regular Expression Print". C'est comme un outil de recherche superpuissant qui t'aide à trouver des motifs spécifiques dans du texte.

Utilisation de base

Voici la syntaxe de base :

grep [options] motif [fichier...]

Commençons avec un exemple simple. Supposons que nous avons un fichier appelé fruits.txt avec le contenu suivant :

apple
banana
cherry
date
elderberry
fig
grape

Si nous voulons trouver tous les fruits qui contiennent la lettre 'a', nous pouvons utiliser :

grep 'a' fruits.txt

Cela affichera :

apple
banana
grape

Options utiles

Voici quelques options pratiques pour grep :

Option Description
-i Ignorer la casse
-v Inverser la correspondance (afficher les lignes qui ne correspondent pas)
-n Afficher les numéros de ligne
-c Compter les lignes correspondantes

Essayons quelques-unes :

grep -i 'A' fruits.txt  # Trouver 'a' ou 'A'
grep -v 'a' fruits.txt  # Trouver les lignes sans 'a'
grep -n 'e' fruits.txt  # Afficher les numéros de ligne pour les lignes avec 'e'
grep -c 'r' fruits.txt  # Compter les lignes contenant 'r'

La commande sort

Qu'est-ce que sort ?

sort fait exactement ce que tu t'attends - il trie des choses ! C'est comme avoir un assistant utile qui peut rapidement organiser tes données alphabétiquement ou numériquement.

Utilisation de base

La syntaxe de base est :

sort [options] [fichier...]

En utilisant notre fichier fruits.txt :

sort fruits.txt

Cela affichera :

apple
banana
cherry
date
elderberry
fig
grape

Options utiles

Voici quelques options courantes pour sort :

Option Description
-r Ordre inversé
-n Trier numériquement
-u Supprimer les doublons
-k Trier par champ spécifique

Essayons ces options :

sort -r fruits.txt  # Ordre alphabétique inversé

Maintenant, créons un fichier appelé numbers.txt avec quelques nombres :

5
2
8
1
3

Nous pouvons les trier numériquement :

sort -n numbers.txt

Les commandes pg et more

Qu'est-ce que pg et more ?

pg et more sont des programmes de pagination. Ils sont comme des serveurs polis qui servent tes données une page à la fois, plutôt que de tout déverser sur toi d'un coup.

Utilisation de base

Pour more :

more [options] [fichier...]

Pour pg :

pg [options] [fichier...]

Essayons more avec un fichier plus long. Créons long_text.txt avec le contenu de ce tutoriel :

more long_text.txt

Cela affichera le contenu une page à la fois. Appuie sur la barre d'espace pour voir la page suivante, ou 'q' pour quitter.

pg fonctionne de manière similaire, mais offre plus de fonctionnalités :

pg long_text.txt

Avec pg, tu peux utiliser ':n' pour aller à la page suivante, ':p' pour la page précédente, et '/motif' pour rechercher du texte.

Mettre tout ensemble : La puissance des tuyaux

Maintenant, la partie passionnante - combiner ces commandes avec des tuyaux ! Le symbole du tuyau '|' connecte la sortie d'une commande à l'input d'une autre.

Créons un fichier appelé employees.txt avec ce contenu :

Alice,Sales,50000
Bob,Marketing,45000
Charlie,Engineering,60000
David,Sales,55000
Eve,Marketing,48000
Frank,Engineering,62000

Maintenant, utilisons des tuyaux pour faire des magies :

grep 'Sales' employees.txt | sort -k3 -nr

Cette commande fait deux choses :

  1. grep 'Sales' employees.txt trouve toutes les lignes contenant 'Sales'
  2. La sortie est ensuite pipée à sort -k3 -nr, qui trie numériquement (-n) en ordre inverse (-r) basé sur le troisième champ (-k3), qui est le salaire.

Le résultat :

David,Sales,55000
Alice,Sales,50000

N'est-ce pas génial ? Nous venons de filtrer nos données et de les trier en un clin d'œil !

Conclusion

Et voilà, les amis ! Nous avons fait le voyage à travers le pays des tuyaux et des filtres, rencontré le puissant grep, l'ordonné sort, et les patients more et pg. Souviens-toi, la pratique rend parfait. Essaie de combiner ces commandes de différentes manières, et tu deviendras rapidement un maître des tuyaux Unix/Linux !

Bonne programmation, et puisses tes tuyaux toujours être dégagés et tes filtres toujours être propres !

Credits: Image by storyset