Les pipelines relient de petites commandes afin que les données circulent sans fichier intermédiaire. tee peut copier une partie de ce flux dans un fichier tout en continuant à le transmettre.
Text-Fu · Leçon 4
pipe et tee
Découvrez comment les pipelines relient des commandes et comment tee sauvegarde un flux tout en le transmettant.
Relier des commandes avec |
Si une liste est trop longue :
$ ls -la /etc
Placez | entre les commandes pour relier stdout de celle de gauche à stdin de celle de droite :
$ ls -la /etc | less
Le shell démarre les commandes et établit la connexion. Elles peuvent fonctionner en parallèle : less commence à lire avant que ls ait tout produit.
Dans ls -la /etc | less, quels flux | relie-t-il par défaut ?
Garder stderr séparé
Un simple | ne transporte que stdout. Stderr conserve sa destination, souvent le terminal :
$ find /etc -name "*.conf" | less
Les chemins trouvés traversent le tube, tandis que les erreurs d'autorisation restent au terminal. Redirigez-les séparément si nécessaire :
$ find /etc -name "*.conf" 2> find-errors.log | less
Dans find /etc -name "*.conf" | less, où va normalement stderr de find sans autre redirection ?
Copier un flux avec tee
tee lit stdin, en écrit une copie dans chaque fichier nommé et reproduit les mêmes données sur stdout :
$ ls | tee listing.txt
listing.txt reçoit la liste et stdout de tee reste relié au terminal. Par défaut, tee crée ou tronque le fichier.
Quelle commande affiche la sortie de generate-report et remplace aussi report.txt par cette sortie ?
Utilisez -a pour ajouter au lieu de remplacer :
$ date | tee -a activity.log
Quelle commande affiche la date et l'ajoute à activity.log ?
Sauvegarder un résultat intermédiaire
Placez tee au milieu d'un pipeline :
$ ls -la /etc | tee etc-listing.txt | grep "conf"
Ce pipeline produit la liste complète, l'enregistre dans etc-listing.txt, puis transmet le même flux à grep, qui n'affiche que les lignes contenant conf. Le fichier reçoit donc les données avant filtrage ; placez tee après grep pour ne conserver que les correspondances.
Que contient all.txt après produce | tee all.txt | grep error ?
Pour vous exercer :
- Rediriger les entrées et sorties sous Linux - Manipulez les flux avec les opérateurs et
tee. - Contrôle de séquence et pipeline - Utilisez les pipelines et les outils de traitement de texte.
- Redirection des flux de données - Combinez les flux standard et
/dev/null.
Leçon terminée
Vous avez terminé pipe et tee
Vous savez désormais relier des commandes et préserver certains points d'un flux.
Relier stdout d'une commande à stdin d'une autre.
Rediriger stderr séparément.
Copier une entrée vers un fichier et stdout avec
tee.Ajouter avec
tee -a.Positionner
teeavant ou après un filtre selon le besoin.
Conservez votre progression
Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.
Créer un compte gratuit