Vous êtes sur la page 1sur 4

Redirections sous le C-shell

M.Adam B.Ernet JM.Inglebert P.Portejoie

Les commandes UNIX utilisent 3 fichiers standards pour leurs entres-sorties : stdin : le fichier d'entre standard, canal 0, stdout : le fichier de sortie standard, canal 1. Quand une commande s'excute, les rsultats sont normalement envoys sur cette sortie. stderr : le fichier de sortie d'erreur standard, canal 2. Quand une commande produit une erreur, le message d'erreur est envoy sur cette sortie. Cependant, il est possible de rcuprer le contenu des sorties standards dans des fichiers, ainsi que de prendre le contenu d'un fichier comme entre standard. Ces oprations sont appeles des redirections. <fichier : redirection de l'entre standard partir de fichier. >fichier : redirection de la sortie standard vers fichier. >>fichier : redirection de la sortie standard vers fichier, en ajout. >&fichier : redirection de la sortie standard et de la sortie d'erreur vers fichier. >>&fichier : redirection de la sortie standard et de la sortie d'erreur vers fichier, en ajout. De plus, il est possible de rediriger sparement les sorties par l'instruction (commande > fs) >& erfs qui redirige la sortie standard vers le fichier fs et la sortie d'erreur vers erfs. Souvent, le rsultat d'une commande doit tre pass en entre d'une autre pour obtenir le rsultat final. Une solution consiste rcuprer le rsultat de la premire commande dans un fichier et de l'utiliser en entre de la suivante. Mais une solution plus souple et qui n'engendre aucune cration de fichier consiste placer un tube (pipe) | entre les deux commandes. Le tube permet de rcuprer la sortie standard pour la placer en entre de la commande suivante. Par exemple pour compter le nombre de fichiers d'un rpertoire, il suffit d'utiliser un tube qui relie la sortie de la commande ls l'entre de la commande wc : ls | wc -w

Exercice 1 Classer les redirections selon leur type : Commande ls > liste wc -w < liste wc -w < liste > res cat liste res > global (ls f1 f2 liste res > present) >& absent ypcat passwd | wc -l entre standard sortie standard sortie d'erreur

1/4

Exercice 2 Le rpertoire courant contient les fichiers suivants : essai.c essai essai.o script.pl script.res Pour chacune des instructions suivantes, que contiennent les fichiers de sortie ? 1) ls > f1 2) ls >> f1 3) wc -l < f1 > f2 4) (ls *.java > f1) >& f2 5) (ls -l essai vide > f1) >& f2 6) (ls -l essai.c > f1) >& f2 7) ls -l | wc -l > f1

Exercice 3 La commande cat lit les donnes sur l'entre standard jusqu' la rencontre d'une marque de fin de fichier, note par Ctrl-D, et les place sur la sortie standard. La commande sort trie les donnes de l'entre standard vers la sortie standard. En utilisant, l'une ou l'autre de ces deux commandes et les redirections, 1) comment faire la saisie d'un fichier ? 8) comment copier un fichier ? 9) comment fusionner deux fichiers vers un troisime ? 10) comment trier des donnes saisies au clavier ? 11) comment trier des donnes d'un fichier vers un autre ? 12) comment fusionner deux fichiers en triant leurs donnes ?

2/4

Correction
Exercice 1 Classer les redirections selon leur type : Commande ls > liste wc -w < liste wc -w < liste > res cat liste res > global (ls f1 f2 liste res > present) >& absent ypcat passwd | wc -l entre standard X X sortie standard X X X X X sortie d'erreur

Exercice 2 Le rpertoire courant contient les fichiers suivants : essai.c essai essai.o script.pl script.res Pour chacune des instructions suivantes, que contiennent les fichiers de sortie ? 1. ls > f1 tous, y compris f1 13) ls >> f1 2 fois chaque fichier 14) wc -l < f1 > f2 12 15) (ls *.java > f1) >& f2 f1 : vide, f2 : /bin/ls no match 16) (ls -l essai vide > f1) >& f2 f1 : essai, f2 : /bin/ls no such file 17) (ls -l essai.c > f1) >& f2 f1 : essai.c, f2 : vide 18) ls -l | wc -l > f1 7

3/4

Exercice 3 La commande cat lit les donnes sur l'entre standard jusqu' la rencontre d'une marque de fin de fichier, note par ctrl-D, et les place sur la sortie standard. La commande sort trie les donnes de l'entre standard vers la sortie standard. En utilisant, l'une ou l'autre de ces deux commandes et les redirections, 1) comment faire la saisie d'un fichier ? cat > f1, Ctrl-D pour terminer 2) comment copier un fichier ? cat f1 > f2 3) comment fusionner deux fichiers vers un troisime ? cat f1 f2 > f3 ou cat f1 > f3 cat f2 >> f3 4) comment trier des donnes saisies au clavier ? sort 5) comment trier des donnes d'un fichier vers un autre ? cat f1 | sort > f2 6) comment fusionner deux fichiers en triant leurs donnes ? cat f1 f2 | sort

4/4