Pipe en Mac pour le terminal : gagner du temps en ligne de commande

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.

Femme consultant le terminal Mac sur un canapé, utilisant des pipes Unix pour enchaîner des commandes et gagner du temps

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 -l compte 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 -5 récupère les lignes 16 à 20, sans ouvrir le fichier dans un éditeur.
  • Trier et dédoublonner une liste : cat liste.txt | sort | uniq produit 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.

Articles populaires