Introduction aux cascades de filtres sous Unix : Différence entre versions
imported>Jacques Ducloy (→Pipes) |
imported>Jacques Ducloy (→Combinaison de fitres en cascade - le pipe) |
||
Ligne 59 : | Ligne 59 : | ||
copie le contenu du fichier fA pour créer le fichier fB. | copie le contenu du fichier fA pour créer le fichier fB. | ||
− | ===Combinaison de | + | ===Combinaison de filtres en cascade=== |
+ | ==le mécanisme pipe d'Unix=== | ||
+ | |||
[[File:UnixPipe.gif|center]] | [[File:UnixPipe.gif|center]] | ||
+ | Le mécanisme appelé « pipe » permet d'enchaîner des commandes en affectant la sortie de l'une à l'entrée de la suivante. Sa forme générale est : | ||
+ | <source lang="sh"> | ||
+ | c0 < fA | c1 | c2 | ... | cn > fB | ||
+ | </source> | ||
+ | Le fichier fA est lu par c0, le résultat est alors traité par c1, et ainsi de suite jusqu'à cn qui inscrit le résultat dans fB. |
Version du 16 janvier 2014 à 18:25
Sommaire
Avant propos
Les exemples donnés dans cette page utilise l'environnement DILIB. Avant toute manipulation ne pas oublier d'initialiser par :
. ~/Dilib/init.sh
Redirections et Entrées sorties standard
Entrées sorties standard
Toute commande Unix peut utiliser :
- l'entrée standard (stdin)
- la sortie standard (stdout)
- Valeurs implicites (pour un poste de travail) :
- stdin : le clavier
- stdout : l'écran
Redirection de l'entrée standard vers un fichier
Soit :
- aUnixCommand = un programme Unix de type filtre
- myFile = un fichier
La commande shell suivante :
aUnixCommand < myFile
appliquera le programme aUnixCommand au fichier myFile et affichera le résultat sur l'écran.
- Exemple avec la commande cat
Dans la bibliothèque DILIB, le fichier $DILIB/data/Wicri/Metadata/IsoC2ToPays.tab
contient une liste de couples « code ISO - pays » avec la tabulation comme séparateur. La commande :
cat < $DILIB/data/Wicri/Metadata/IsoC2ToPays.tab
recopie le fichier sur l'écran.
- Exemple avec la commande grep
La commande grep permet de sélectionner des lignes à partir d'un paramètre donné en première position. Poyr imprimer les noms de pays qui contiennent le mot « Sud », il faut faire :
grep Sud < $DILIB/data/Wicri/Metadata/IsoC2ToPays.tab
Redirection de la sortie standard vers un fichier
La sortie standard peut à son tour être redirigée vers un fichier en utilisant le caractère « > ».
Par exemple, pour mémoriser la date (et l'heure) en cours dans un fichier, il suffit d'écrire :
date > maDate.txt
Combinaison simple des redirections
Entrée et sortie standard peuvent être rédirigées simultanément.
ainsi :
cat < fA > fB
copie le contenu du fichier fA pour créer le fichier fB.
Combinaison de filtres en cascade
le mécanisme pipe d'Unix=
Le mécanisme appelé « pipe » permet d'enchaîner des commandes en affectant la sortie de l'une à l'entrée de la suivante. Sa forme générale est :
c0 < fA | c1 | c2 | ... | cn > fB
Le fichier fA est lu par c0, le résultat est alors traité par c1, et ainsi de suite jusqu'à cn qui inscrit le résultat dans fB.