Introduction aux cascades de filtres sous Unix : Différence entre versions

De Wicri Manuel
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 fitres en cascade - le pipe===
+
===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

logo travaux page en cours d'initialisation

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)

UnixRdir.gif

  • Valeurs implicites (pour un poste de travail) :
  • stdin : le clavier
  • stdout : l'écran

Redirection de l'entrée standard vers un fichier

UnixInputFile.gif

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=

UnixPipe.gif

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.