Le pipe en Mac est l’un des outils les plus utiles du terminal, et pourtant il reste souvent ignoré des utilisateurs qui débutent en ligne de commande. Le symbole | permet d’enchaîner plusieurs commandes en série : la sortie de la première devient l’entrée de la suivante, sans fichier intermédiaire, sans copier-coller.
La disposition de clavier active dans macOS conditionne le raccourci à utiliser, et le comportement du pipe varie selon le shell. Voici comment le taper, et surtout comment en tirer parti concrètement.
La référence complète des commandes disponibles sous macOS est consultable sur https://ss64.com/mac/.
Taper le symbole pipe sur un clavier Mac : AZERTY et QWERTY
Avant de construire quoi que ce soit en ligne de commande, encore faut-il savoir saisir ce caractère. Et c’est là que la plupart des tutoriels trébuchent : ils donnent un raccourci universel qui ne couvre pas tous les claviers.
Sur un clavier AZERTY français, le raccourci est Alt (Option) + Shift + L, soit ⌥ + ⇧ + L. Sur un clavier QWERTY américain, le pipe se trouve directement sur la touche \ avec Shift. Sur un clavier britannique, la position diffère encore.
La règle à retenir : le raccourci dépend de la disposition de clavier active dans macOS, pas du modèle de Mac. Si le résultat affiché ne correspond pas à |, ouvre le Visualiseur de clavier (menu Bluetooth ou Entrée dans la barre des menus > Préférences Système > Clavier > Afficher le visualiseur de clavier). Tu verras en temps réel quels caractères sont produits avec Option ou Option + Majuscule maintenues, selon ta disposition active.
Ce que le pipe fait concrètement dans le terminal macOS
Le pipe relie la sortie standard d’une commande à l’entrée de la suivante. Quand tu tapes ls -l | grep ".txt", le terminal liste d’abord tous les fichiers du répertoire courant, puis filtre automatiquement ceux dont le nom contient « .txt ». Une seule ligne, zéro fichier temporaire.
Ce mécanisme s’étend à autant de commandes qu’on veut. cat journal.log | grep "erreur" | sort | uniq -c lit un fichier log, extrait les lignes contenant « erreur », les trie, puis compte les doublons. Ce qui prendrait plusieurs étapes manuelles tient en une ligne.

Exemples de pipelines utiles dans macOS au quotidien
Voici des cas d’usage réels, directement applicables dans le Terminal macOS :
- Lister les processus et filtrer par nom :
ps aux | grep "Safari"affiche uniquement les processus liés à Safari, sans parcourir toute la liste manuellement. - Compter les fichiers d’un répertoire :
ls | wc -lcompte le nombre d’éléments dans le dossier courant en une fraction de seconde. - Extraire des lignes spécifiques d’un fichier texte :
head -20 fichier.txt | tail -5récupère les lignes 16 à 20, sans ouvrir le fichier dans un éditeur. - Trier et dédoublonner une liste :
cat liste.txt | sort | uniqproduit une liste triée et nettoyée de ses répétitions.
Ces exemples fonctionnent dans zsh, le shell par défaut de macOS depuis Catalina. Si tu travailles encore sous Bash, la syntaxe de base reste identique, mais certaines options avancées peuvent diverger.
Deux comportements du pipe à connaître avant d’aller plus loin
Le pipe ne transmet pas les erreurs par défaut
commande1 | commande2 relie uniquement la sortie standard. Si la première commande génère un message d’erreur, celui-ci n’est pas transmis à la suivante : il s’affiche directement dans le terminal, en parallèle. Pour fusionner erreurs et sortie standard avant de les passer au pipe, on ajoute 2>&1 : commande1 2>&1 | commande2. La syntaxe exacte varie selon le shell actif.
Le code de retour peut masquer un échec en amont
Dans Bash, le statut renvoyé par un pipeline est celui de la dernière commande. Si la première échoue mais que la seconde réussit, l’ensemble est considéré comme un succès. Pour détecter les échecs à n’importe quelle étape, l’option pipefail doit être activée explicitement avec set -o pipefail. En zsh, ce comportement diffère légèrement – vérifier la documentation de ton shell avant d’automatiser des pipelines critiques.
Aller plus loin : combiner le pipe avec la redirection
Le pipe s’associe naturellement avec la redirection de sortie (> et >>). On peut ainsi filtrer des données et les enregistrer directement dans un fichier : ls -l | grep ".log" > liste_logs.txt crée un fichier contenant uniquement les fichiers .log du répertoire.
Pour les usages répétitifs, ces pipelines gagnent à être transformés en alias ou en fonctions dans le fichier .zshrc. Un alias comme alias compter='ls | wc -l' rend la commande disponible en permanence dans chaque session Terminal.
Maîtriser le pipe change la façon d’utiliser le terminal macOS : on cesse de chercher des interfaces graphiques pour des tâches de traitement de texte ou de fichiers, et on construit des commandes qui font exactement ce qu’on veut, en une ligne. Les pipelines les plus utiles sont souvent les plus courts – deux ou trois commandes bien choisies suffisent à automatiser des opérations qui prenaient plusieurs minutes en manipulation manuelle.

