Chaîner les commandes
Objectifs
Comprendre ce qu'est un pipe
Savoir chaîner des commandes avec un pipe
Définition : Le pipe
Un pipe (tube ou tuyau en anglais) est un outil qui permet de connecter la sortie standard d'une commande avec l'entrée standard d'une autre commande. Cela permet de chaîner plusieurs commandes, le résultat de l'une formant les données d'entrée de la suivante.
Méthode : Utiliser un pipe
Pour créer un pipe entre 2 commandes, il suffit d'écrire les deux commandes séparées pour un caractère |
(que l'on appelle le pipe).
$ ls -R /home | less
La commande ls -R /home
liste tout les fichiers et dossiers de /home
de manière récursive, ce qui produit énormément de résultats dans le terminal. L'utilisation du pipe permet de rediriger la sortie standard vers la commande less
qui va nous permettre de naviguer dans le résultat de la commande (son stdin
donc).
Exemple : Filtrer des mots
La commande grep
permet de faire des recherches et/ou de filtrer du texte dans un fichier. Mais elle permet aussi de traiter un flux reçu sur son entrée standard.
$ ls -R /home | grep "picasoft"
/home/kyane/code/picasoft/registre:
/home/kyane/code/picasoft/stats-page:
/home/kyane/documents/picasoft/documents:
/home/kyane/documents/picasoft/api:
/home/kyane/documents/picasoft/doc:
Ici on récupère la liste des fichiers, mais on filtre toutes les lignes qui contiennent le texte "picasoft". Grâce au pipe la commande grep
travaille directement sur le résultat de la commande ls
.
À retenir
Il est possible de créer un pipe, un tuyau, entre la sortie standard d'une commande et l'entrée standard d'une autre commande, à l'aide du caractère |
.