Kodokon kodokon.com

Lire un fichier et rediriger une sortie

Affichez le contenu d'un fichier avec cat, head et tail, puis capturez une sortie dans un fichier.

7 min · 3 questions

Ouvrir cette leçon dans Kodokon

Vous n'avez pas toujours besoin d'ouvrir un éditeur pour jeter un œil à un fichier. La commande cat affiche son contenu directement dans le terminal. Son nom vient de concatenate, « mettre bout à bout », car elle sait aussi afficher plusieurs fichiers à la suite. C'est l'outil idéal pour les petits fichiers : quelques dizaines de lignes tout au plus.

BASH
yoann@portable:~/mon-projet$ cat courses.txt
Pain
Fromage
Tomates

yoann@portable:~/mon-projet$ cat courses.txt notes.txt
Pain
Fromage
Tomates
Ne pas oublier le marche du samedi
cat sur un fichier, puis sur deux fichiers affichés l'un après l'autre.

Sur un fichier de dix mille lignes, cat fait défiler l'écran pendant dix secondes et vous ne voyez que la fin. Deux commandes plus fines existent : head affiche le début du fichier, tail en affiche la fin. Toutes deux montrent 10 lignes par défaut, et l'option -n permet de choisir combien. tail a un super-pouvoir avec l'option -f (*follow*) : elle reste ouverte et affiche les nouvelles lignes au fur et à mesure qu'elles arrivent. C'est ainsi qu'on surveille les journaux d'un serveur en direct.

BASH
head journal.log
head -n 5 journal.log
tail -n 20 journal.log
tail -f journal.log
Le début, les 5 premières lignes, les 20 dernières, puis la fin en direct (Ctrl + C pour sortir).

Par défaut, une commande écrit son résultat à l'écran. Mais on peut détourner ce résultat vers un fichier, comme on détournerait l'eau d'un tuyau vers un seau. C'est la redirection, et elle s'écrit avec un chevron. Le simple chevron > envoie la sortie dans un fichier en écrasant ce qu'il contenait. Le double chevron >> ajoute à la fin sans rien effacer. Cette petite différence d'un caractère change tout. Pour contrôler ce que vous venez de produire sans l'afficher en entier, la commande wc (word count) avec l'option -l (*lines*) compte le nombre de lignes d'un fichier.

BASH
yoann@portable:~/mon-projet$ echo "Ma première ligne" > notes.txt
yoann@portable:~/mon-projet$ echo "Ma deuxième ligne" >> notes.txt
yoann@portable:~/mon-projet$ cat notes.txt
Ma première ligne
Ma deuxième ligne
yoann@portable:~/mon-projet$ ls -l > inventaire.txt
yoann@portable:~/mon-projet$ wc -l inventaire.txt
7 inventaire.txt
Créer un fichier, lui ajouter une ligne, vérifier, capturer une sortie puis compter ses lignes.

Quiz de validation

Vérifiez que vous avez bien retenu les points clés de cette leçon.

  1. À quoi sert la commande cat ?
    • À afficher le contenu d'un fichier dans le terminal
    • À créer un fichier vide
    • À supprimer un fichier
    • À compter les lignes d'un fichier
  2. Quelle est la différence entre > et >> ?
    • > ajoute à la fin, >> écrase le fichier
    • > écrase le fichier, >> ajoute à la fin
    • Aucune, les deux écrivent dans un fichier
  3. Comment afficher les 20 dernières lignes du fichier journal.log ?
    • head -n 20 journal.log
    • cat -n 20 journal.log
    • tail -n 20 journal.log