Terme du glossaire

La commande CAT

1 category

Mis à jour le

Sous le vernis de macOS se cache un système Unix, et avec lui un jeu de commandes vieilles de plus de cinquante ans qui n’ont jamais eu besoin d’être remplacées. cat est l’une des plus simples, et l’une des plus employées.

Définition de la commande cat

cat est une commande du Terminal qui affiche le contenu d’un ou plusieurs fichiers texte dans la fenêtre. Son nom est l’abréviation de concatenate — « mettre bout à bout » — car sa fonction d’origine est d’assembler plusieurs fichiers en un seul flux.

Elle est apparue dans les premiers systèmes Unix, au début des années 1970. macOS reposant sur un noyau Unix (Darwin), elle en a hérité telle quelle : elle est présente sur tous les Mac, sans rien à installer.

La syntaxe de base

Ouvrez le Terminal (Applications → Utilitaires, ou ⌘ + Espace puis « Terminal ») et tapez :

cat notes.txt

Le contenu du fichier s’affiche. Pour en afficher plusieurs à la suite :

cat partie1.txt partie2.txt

Et pour écrire le résultat dans un nouveau fichier plutôt que de l’afficher :

cat partie1.txt partie2.txt > complet.txt

Les options qui servent vraiment

  • cat -n fichier.txt — numérote toutes les lignes. Pratique pour situer une erreur dans un script ou un fichier de configuration.
  • cat -b fichier.txt — numérote uniquement les lignes non vides.
  • cat -e fichier.txt — affiche un $ en fin de ligne. Le seul moyen simple de voir des espaces traînant en bout de ligne.
  • cat -v fichier.txt — rend visibles les caractères non imprimables, utile pour diagnostiquer un fichier au codage douteux.

Deux pièges à connaître

Le chevron simple écrase. cat a.txt > b.txt remplace intégralement le contenu de b.txt, sans confirmation ni corbeille. Pour ajouter à la fin d’un fichier existant, il faut doubler le chevron : cat a.txt >> b.txt. C’est l’erreur classique, et elle est irréversible.

cat n’est pas fait pour les gros fichiers. Sur un fichier de plusieurs milliers de lignes, tout défile d’un coup et vous ne voyez que la fin. Utilisez plutôt less fichier.txt, qui permet de naviguer (flèches, / pour chercher, q pour quitter), ou head et tail pour n’afficher que le début ou la fin.

cat dans une chaîne de commandes

La vraie puissance d’Unix vient de l’enchaînement des commandes par le tube (|). cat sert alors de point de départ :

cat journal.txt | grep "erreur"

affiche uniquement les lignes contenant le mot « erreur ». Les puristes vous diront — à juste titre — que grep "erreur" journal.txt fait la même chose sans passer par cat. Ils ont raison sur l’efficacité ; en pratique, la forme avec cat reste très répandue parce qu’elle se lit de gauche à droite, dans l’ordre où l’on pense.

Créer un fichier avec cat

Sans nom de fichier, cat lit ce que vous tapez au clavier. Combiné à une redirection, cela permet de créer un fichier sans ouvrir d’éditeur :

cat > memo.txt

Tapez votre texte, puis Contrôle + D pour terminer. Le fichier est créé dans le dossier courant.

En bref : ce qu’il faut retenir sur cat

  • cat affiche le contenu d’un fichier texte, ou en assemble plusieurs.
  • Le nom vient de concatenate ; la commande est héritée d’Unix et présente sur tout Mac.
  • > écrase le fichier de destination, >> ajoute à la fin.
  • Pour un fichier volumineux, préférez less, head ou tail.
  • -n numérote les lignes, -e révèle les fins de ligne.

Ressources et liens utiles