Introduction aux cascades de filtres sous Unix : Différence entre versions
imported>Jacques Ducloy (→Avant propos) |
imported>Jacques Ducloy (→Redirection de l'entrée standard vers un fichier) |
||
Ligne 25 : | Ligne 25 : | ||
Soit : | Soit : | ||
− | :'' | + | :''maCommandeUnix'' = un programme Unix de type filtre |
− | :'' | + | :''monFichier'' = un fichier |
La commande shell suivante : | La commande shell suivante : | ||
<source lang="sh"> | <source lang="sh"> | ||
− | + | maCommandeUnix < monFichier | |
</source> | </source> | ||
− | appliquera le programme '' | + | appliquera le programme ''maCommandeUnix'' au fichier ''monFichier'' et affichera le résultat sur l'écran. |
;Exemple avec la commande cat: | ;Exemple avec la commande cat: | ||
Dans la bibliothèque DILIB, le fichier <code>$DILIB/data/Wicri/Metadata/IsoC2ToPays.tab</code> contient une liste de couples « code ISO - pays » avec la tabulation comme séparateur. La commande <code>'''[[cat (Unix)|cat]]'''</code> : | Dans la bibliothèque DILIB, le fichier <code>$DILIB/data/Wicri/Metadata/IsoC2ToPays.tab</code> contient une liste de couples « code ISO - pays » avec la tabulation comme séparateur. La commande <code>'''[[cat (Unix)|cat]]'''</code> : | ||
Ligne 40 : | Ligne 40 : | ||
recopie le fichier sur l'écran. | recopie le fichier sur l'écran. | ||
;Exemple avec la commande grep: | ;Exemple avec la commande grep: | ||
− | La commande grep permet de sélectionner des lignes à partir d'un paramètre donné en première position. | + | La commande grep permet de sélectionner des lignes à partir d'un paramètre donné en première position. Pour imprimer les noms de pays qui contiennent le mot « Sud », il faut faire : |
<source lang="sh"> | <source lang="sh"> | ||
grep Sud < $DILIB/data/Wicri/Metadata/IsoC2ToPays.tab | grep Sud < $DILIB/data/Wicri/Metadata/IsoC2ToPays.tab |
Version du 9 juin 2020 à 12:01
Cette page introduit un ensemble d'exemples permettant de combiner des outils de manipulations de flux de données avec Unix.
Sommaire
Avant propos
Les exemples donnés dans cette page utilise l'environnement DILIB. Avant toute manipulation ne pas oublier d'initialiser l'environnement.
Pour une installation ScienceExplor faire :
source $HOME/Documents/ScienceExplor/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 :
- maCommandeUnix = un programme Unix de type filtre
- monFichier = un fichier
La commande shell suivante :
maCommandeUnix < monFichier
appliquera le programme maCommandeUnix au fichier monFichier 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
:
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. Pour 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
Les systèmes Unix dispose d'un mécanisme pour enchaîner des filtres.
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.