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 !
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 :
-
grep 'Sales' employees.txt
trouve toutes les lignes contenant 'Sales' - 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