27
1 GPA435 Systèmes GPA435 Systèmes d’exploitation et d’exploitation et programmation de programmation de système système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX U n ive rs ité d u Q uébec É co le d e te c h n o lo g ie s u p érieu re D é partem e n t de génie de la p ro du ctio n a u to m a tisée

1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

Embed Size (px)

Citation preview

Page 1: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

1

GPA435 Systèmes GPA435 Systèmes d’exploitation et d’exploitation et programmation de programmation de systèmesystème

Copyright, 2000 © Tony Wong, Ph.D.

Chapitre 8Filtres UNIX

Université du Québec

École de technologie supérieureDépartem ent de génie de la production autom atisée

Page 2: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

2

Filtres UNIX (1)Filtres UNIX (1)• Les filtres UNIX sont des commandes Les filtres UNIX sont des commandes

qui acceptent des données de l’entrée qui acceptent des données de l’entrée standard, effectuent des standard, effectuent des transformations sur ces données et transformations sur ces données et les dirigent vers la sortie standard. les dirigent vers la sortie standard.

Système d’exploitation UNIX

F iltre U N I X(com m ande)

Entréestandard

Sortiestandard

DonnéesDonnéestransform ées

Page 3: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

3

Filtres UNIX (2)Filtres UNIX (2)

Système d’exploitation UNIX

Pour les besoins de ce cours:Pour les besoins de ce cours: Un filtre transforme les données présentées Un filtre transforme les données présentées

à son entrée (et de d’autres sources).à son entrée (et de d’autres sources). Un filtre achemine les données Un filtre achemine les données

transformées à sa sortie standard (et vers transformées à sa sortie standard (et vers d’autres destinations).d’autres destinations).

Un filtre affiche ses messages d’erreur vers Un filtre affiche ses messages d’erreur vers la sortie erreur standard.la sortie erreur standard.

Donc, pas toutes les commandes UNIX Donc, pas toutes les commandes UNIX sont des filtres (dans le sens défini ci-sont des filtres (dans le sens défini ci-dessus).dessus).

Page 4: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

4

Filtre comm(1)Filtre comm(1)

Système d’exploitation UNIX

comm(1) compare le contenu de deux ensembles de comm(1) compare le contenu de deux ensembles de données.données. L’un des deux ensemble peut provenir de l ’entrée standard.L’un des deux ensemble peut provenir de l ’entrée standard. Synopsis:Synopsis:

comm [options] fichier1 fichier2comm [options] fichier1 fichier2-1 Ne pas afficher la première colonne (les lignes présentent uniquement dans le -1 Ne pas afficher la première colonne (les lignes présentent uniquement dans le

fichier1)fichier1)

-2 Ne pas afficher la deuxième colonne (les lignes présentent uniquement dans le -2 Ne pas afficher la deuxième colonne (les lignes présentent uniquement dans le fichier2)fichier2)

-3 Ne pas afficher dans la troisième colonne (les lignes présentent dans les deux -3 Ne pas afficher dans la troisième colonne (les lignes présentent dans les deux fichiers)fichiers)

Page 5: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

5

Filtre comm(1)Filtre comm(1) Note: si le nom de l’un des fichiers est Note: si le nom de l’un des fichiers est

le caractère le caractère -- alors son contenu est lu alors son contenu est lu de l ’entrée standard.de l ’entrée standard.

Statut de sortie:Statut de sortie:0 pour indiquer qu’il n’y a pas eu 0 pour indiquer qu’il n’y a pas eu

d’erreur;d’erreur;>0 pour indiquer qu’une erreur est >0 pour indiquer qu’une erreur est

rencontrée.rencontrée. Exemple:Exemple:

Système d’exploitation UNIX

Je suis ici vous voircher Monsieur Jean.Comment ça va mon cher Watson ?Non, Pas le Dr. Watson de Windows!

F ich ier1

Je suis ici vous voircher Monsieur JeanComment ça va mon cher Watson ?Non, Pas le Dr. Watson de Holms!

F ich ier2

Page 6: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

6

Filtre comm(1)Filtre comm(1) Exemple (suite):Exemple (suite):

Système d’exploitation UNIX

centi 15> comm comm1.dat comm2.dat Je suis ici vous voir cher Monsieur Jeancher Monsieur Jean. Comment ça va mon cher Watson ? Non, Pas le Dr. Watson de Holms!Non, Pas le Dr. Watson de Windows!centi 16>

Première colonne

Deuxième colonne

Troisième colonne

Page 7: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

7

Filtre diff(1)Filtre diff(1)diff(1) donne les différences entre deux ensembles de diff(1) donne les différences entre deux ensembles de

données.données. Ce filtre accepte des noms de répertoire.Ce filtre accepte des noms de répertoire. Synopsis:Synopsis:

diff [options] fichier1 fichier2diff [options] fichier1 fichier2

diff [options] fichier1 répertoirediff [options] fichier1 répertoire

diff [options] répertoire fichier1diff [options] répertoire fichier1

diff [options] répertoire1 répertoire2diff [options] répertoire1 répertoire2

Système d’exploitation UNIX

Page 8: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

8

Filtre diff(1)Filtre diff(1) Synopsis (suite):Synopsis (suite):

-b Ignorer les blancs (Espace et Tab) à la fin d’une ligne-b Ignorer les blancs (Espace et Tab) à la fin d’une ligne

-c[n] Afficher le contexte où les lignes différentes ont été -c[n] Afficher le contexte où les lignes différentes ont été trouvéestrouvées

Statut de sortie:Statut de sortie:0 Pas de différence rencontrée0 Pas de différence rencontrée

1 Des différences ont été relevées1 Des différences ont été relevées

>1 Une erreur est rencontrée>1 Une erreur est rencontrée

Système d’exploitation UNIX

Page 9: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

9

Filtre diff(1)Filtre diff(1)

Système d’exploitation UNIX

Interprétation des résultats de sortie:Interprétation des résultats de sortie:

addition (a), élimination (d) et changement (c)addition (a), élimination (d) et changement (c)

En effectuant ces opérations, les deux ensembles de données deviendront En effectuant ces opérations, les deux ensembles de données deviendront identiques.identiques.

Résultat Signification

L1 a L2,L3

> Lignes du fichier2

Ajouter lignes du fichier2 après ligne L1 du fichier1.

L1,L2 d L3

< Lignes du fichier1

Effacer les lignes L1 à L2 du fichier1.

L1,L2 c L3,L4

< Lignes du fichier1

---

> Lignes du fichier2

Changer les lignes L1 à L2 du fichier1 en L3 à L4 du fichier2.

Page 10: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

10

Filtre diff(1)Filtre diff(1)

Système d’exploitation UNIX

Exemple:Exemple:

centi 17> diff comm1.dat comm2.dat2c2< cher Monsieur Jean.---> cher Monsieur Jean4c4< Non, Pas le Dr. Watson de Windows!---> Non, Pas le Dr. Watson de Holms!centi 18>

??

Page 11: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

11

Filtre uniq(1)Filtre uniq(1)Montrer les lignes uniques d’un ensemble de données.Montrer les lignes uniques d’un ensemble de données.

Ce filtre accepte des données de l ’entrée standard ou d’un fichier.Ce filtre accepte des données de l ’entrée standard ou d’un fichier. Synopsis:Synopsis:

uniq [options] [-n] [+c] [fentree] [fsortie]uniq [options] [-n] [+c] [fentree] [fsortie]-c -c Afficher le nombre d’apparition de la ligneAfficher le nombre d’apparition de la ligne

-d-d Afficher uniquement les lignes répétéesAfficher uniquement les lignes répétées

-u-u Afficher les lignes qui ne sont pas répétéesAfficher les lignes qui ne sont pas répétées

-n-n Ignorer les n premiers champs des lignesIgnorer les n premiers champs des lignes

+c+c Ignorer les c premiers caractères des lignesIgnorer les c premiers caractères des lignes

Système d’exploitation UNIX

Page 12: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

12

Filtre uniq(1)Filtre uniq(1) Synopsis (suite):Synopsis (suite):

fentreefentree fichier d’entrée (rien=entrée std)fichier d’entrée (rien=entrée std)

fsortiefsortie fichier de sortie (rien=sortie std)fichier de sortie (rien=sortie std)

Statut de sortie:Statut de sortie:0 Pas d’erreur0 Pas d’erreur

>0 erreur rencontrée>0 erreur rencontrée

Note: Un champ est un ensemble de caractères entourés de Note: Un champ est un ensemble de caractères entourés de caractères espaces ou Tab. Il peut exister 1 ou plusieurs champs caractères espaces ou Tab. Il peut exister 1 ou plusieurs champs dans une ligne. dans une ligne.

Système d’exploitation UNIX

Page 13: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

13

Filtre uniq(1)Filtre uniq(1) Exemple:Exemple:

Système d’exploitation UNIX

Michelle est de retourMinou à MoiMinou à MoiMinou à MoiMichelle est de retourMichelle est de retourMichelle est de retourMichelle est de retour

centi 42> cat uniq.dat | uniq -c 1 Michelle est de retour 3 Minou à Moi 2 Michelle est de retour 2 Michelle est de retourcenti 43> uniq -d uniq.datMinou à MoiMichelle est de retourMichelle est de retourcenti 44> uniq -u < uniq.datMichelle est de retourcenti 45>

Lignes qui ne sont pas uniquesLignes qui ne sont pas uniques

Lignes qui sont uniquesLignes qui sont uniques

uniq.datuniq.dat

Page 14: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

14

Filtre tr(1)Filtre tr(1)

Système d’exploitation UNIX

Remplacer un ensemble de données en un autre ensemble Remplacer un ensemble de données en un autre ensemble de données.de données. Ce filtre accepte certains méta-caractères de regex.Ce filtre accepte certains méta-caractères de regex. Synopsis:Synopsis:

tr [options] [chaine1 [chaine2]]tr [options] [chaine1 [chaine2]]-c Complément de l’ensemble des caractères représentés par la chaine1-c Complément de l’ensemble des caractères représentés par la chaine1

-d Éliminer de l’entrée standard les caractères qui correspondent à ceux de chaine1-d Éliminer de l’entrée standard les caractères qui correspondent à ceux de chaine1

-s Réduire une séquence de caractères identiques en un seul caractère. La -s Réduire une séquence de caractères identiques en un seul caractère. La spécification de chaine2 est facultativespécification de chaine2 est facultative

Page 15: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

15

Filtre tr(1)Filtre tr(1) Statut de sortie:Statut de sortie:

0 Pas d’erreur0 Pas d’erreur

>0 erreur rencontrée>0 erreur rencontrée

Note: Note: Pour éliminer les caractères Pour éliminer les caractères contenus dans chaine1 du flux contenus dans chaine1 du flux d’entrée, simplement ne pas spécifier d’entrée, simplement ne pas spécifier chaine2 et utiliser l’option –d.chaine2 et utiliser l’option –d.

Note: le remplacement s’effectue Note: le remplacement s’effectue caractère par caractère. Donc, l’ordre caractère par caractère. Donc, l’ordre des caractères dans chaine1 et chaine2 des caractères dans chaine1 et chaine2 est important.est important.

Système d’exploitation UNIX

Page 16: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

16

Filtre tr(1)Filtre tr(1) Exemple:Exemple:

Système d’exploitation UNIX

Je suis ici vous voircher Monsieur Jean.Comment ça va mon cher Watson ?Non, Pas le Dr. Watson de Windows!

com m 1.dat

centi 49> tr -cs "[A-Z][a-z]" "[\n*]" < comm1.datJesuisicivousvoircherMonsieurJeanCommentavamoncherWatsonNonPasleDrWatsondeWindows

Pourquoi ce résultat ?Pourquoi ce résultat ?

Page 17: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

17

Filtre tr(1)Filtre tr(1)

Système d’exploitation UNIX

Exemple:Exemple:

Observer bien le rôle de l’option -s.Observer bien le rôle de l’option -s.

La chaine2 n’est pas spécifiée. Alors remplace les multiples apparitions du La chaine2 n’est pas spécifiée. Alors remplace les multiples apparitions du caractère de chaine1 par le même caractère de chaine1 (le caractère caractère de chaine1 par le même caractère de chaine1 (le caractère espace).espace).

centi 49> ls -ltotal 6-rw-r--r-- 1 wong recherche 109 mars 20 23:40 comm1.dat-rw-r--r-- 1 wong recherche 106 mars 20 23:41 comm2.dat-rw-r--r-- 1 wong recherche 153 mars 21 01:12 uniq.datcenti 50> ls -l | tr -s ' 'total 6-rw-r--r-- 1 wong recherche 109 mars 20 23:40 comm1.dat-rw-r--r-- 1 wong recherche 106 mars 20 23:41 comm2.dat-rw-r--r-- 1 wong recherche 153 mars 21 01:12 uniq.dat

Page 18: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

18

Filtre cut(1)Filtre cut(1)

Système d’exploitation UNIX

Sélectionner des champs des lignes d’entrées.Sélectionner des champs des lignes d’entrées. Ce filtre accepte des lignes de l’entrée standard ou des Ce filtre accepte des lignes de l’entrée standard ou des

fichiers.fichiers. Synopsis:Synopsis:

cut –c liste [fichier …]cut –c liste [fichier …]

cut –f liste [-d car] [-s] [fichier …]cut –f liste [-d car] [-s] [fichier …]-cliste liste indique les positions en termes de caractères. Par exemple, -cliste liste indique les positions en termes de caractères. Par exemple,

-c1-72 signifie les 72 premiers caractères de chaque ligne-c1-72 signifie les 72 premiers caractères de chaque ligne

Page 19: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

19

Filtre cut(1)Filtre cut(1)

Système d’exploitation UNIX

-fliste liste indique les positions en termes de -fliste liste indique les positions en termes de champs entourés par des caractères spécifiques. champs entourés par des caractères spécifiques. Par défaut, ce sont les blancs d’une ligne (Espace Par défaut, ce sont les blancs d’une ligne (Espace ou Tab). Par exemple, -f1,7 signifie les 7 ou Tab). Par exemple, -f1,7 signifie les 7 premiers champs de chaque lignepremiers champs de chaque ligne

-dcar Le caractère car suivant –d est le séparateur -dcar Le caractère car suivant –d est le séparateur de champ. Par exemple, -d: utilise le symbole : de champ. Par exemple, -d: utilise le symbole : comme séparateur de champcomme séparateur de champ

-s Suppression des lignes ayant aucun séparateur -s Suppression des lignes ayant aucun séparateur de champde champ

Statut de sortie:Statut de sortie:0 Pas d’erreur0 Pas d’erreur

>0 erreur rencontrée>0 erreur rencontrée

Page 20: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

20

Filtre cut(1)Filtre cut(1) Note: Note: Les champs, dans ce contexte, sont Les champs, dans ce contexte, sont

spécifiés par l’option –c en termes de spécifiés par l’option –c en termes de position de caractères ou par l’option –f position de caractères ou par l’option –f en termes de caractères délimités par le en termes de caractères délimités par le séparateur spécifié par –d. L’argument séparateur spécifié par –d. L’argument liste représente les champs affectés.liste représente les champs affectés.

Note: La spécification des champs est Note: La spécification des champs est séparée par le symbole , (virgule) et droit séparée par le symbole , (virgule) et droit être en ordre croissant (ex : 1,4,7). Il est être en ordre croissant (ex : 1,4,7). Il est permis de spécifier une plage de champs permis de spécifier une plage de champs (ex : 1-5,9).(ex : 1-5,9).

Système d’exploitation UNIX

Page 21: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

21

Filtre cut(1)Filtre cut(1)

Système d’exploitation UNIX

Exemple:Exemple:

centi 75> ls -ltotal 8-rw-r--r-- 1 wong recherche 59 mars 21 01:14 #-rw-r--r-- 1 wong recherche 109 mars 20 23:40 comm1.dat-rw-r--r-- 1 wong recherche 106 mars 20 23:41 comm2.dat-rw-r--r-- 1 wong recherche 153 mars 21 01:12 uniq.datcenti 76> ls -l | cut -c1-10,55-total 8-rw-r--r-- #-rw-r--r-- comm1.dat-rw-r--r-- comm2.dat-rw-r--r-- uniq.datcenti 77> ls -l | tr -s ' ' ':*'total:8-rw-r--r--:1:wong:recherche:59:mars:21:01:14:#-rw-r--r--:1:wong:recherche:109:mars:20:23:40:comm1.dat-rw-r--r--:1:wong:recherche:106:mars:20:23:41:comm2.dat-rw-r--r--:1:wong:recherche:153:mars:21:01:12:uniq.datcenti 78> ls -l | tr -s ' ' ':*' | cut -f1,3,10 -d: | tr ':' ' 'total-rw-r--r-- wong #-rw-r--r-- wong comm1.dat-rw-r--r-- wong comm2.dat-rw-r--r-- wong uniq.dat

Page 22: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

22

Filtre egrep(1)Filtre egrep(1)

Système d’exploitation UNIX

Trouver des caractères dans un ensemble de données.Trouver des caractères dans un ensemble de données. Ce filtre fait partie de la famille des filtres grep (Ce filtre fait partie de la famille des filtres grep (global global

regular expression printregular expression print). La chaîne de caractères ). La chaîne de caractères recherchée est décrite par une regex.recherchée est décrite par une regex.

Synopsis:Synopsis:

egrep [options] [-e expr] [expression] [-f fich] [fichiers …]egrep [options] [-e expr] [expression] [-f fich] [fichiers …]-b Afficher au début de chaque ligne trouvée, le numéro de bloc sur le disque-b Afficher au début de chaque ligne trouvée, le numéro de bloc sur le disque

Page 23: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

23

Filtre egrep(1)Filtre egrep(1)

Système d’exploitation UNIX

-c Afficher uniquement le nombre de lignes contenant la -c Afficher uniquement le nombre de lignes contenant la chaînechaîne

-h N’afficher pas les noms de fichier-h N’afficher pas les noms de fichier

-i Ne pas faire de distinction entre les majuscules et les -i Ne pas faire de distinction entre les majuscules et les minusculesminuscules

-s Aucune sortie sauf les messages d’erreur-s Aucune sortie sauf les messages d’erreur

-e Nécessaire pour les expressions régulières commençant -e Nécessaire pour les expressions régulières commençant par un tiretpar un tiret

-f fich Expression régulière est contenue dans le fichier fich-f fich Expression régulière est contenue dans le fichier fich

Statut de sortie:Statut de sortie:0 0 la chaîne est trouvéela chaîne est trouvée11 la chaîne n’est pas trouvéela chaîne n’est pas trouvée2 erreur(s) rencontrée(s)2 erreur(s) rencontrée(s)

Page 24: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

24

Filtre egrep(1)Filtre egrep(1)

Système d’exploitation UNIX

Note: egrep(1) Note: egrep(1) recherche les lignes qui recherche les lignes qui contiennent la ou les chaînes de contiennent la ou les chaînes de caractères indiquées par expr ou caractères indiquées par expr ou expression. Par défaut, les lignes expression. Par défaut, les lignes trouvées sont envoyées à la sortie trouvées sont envoyées à la sortie standard.standard.

Note: Lire l’aide en-ligne de egrep(1) Note: Lire l’aide en-ligne de egrep(1) pour connaître les expressions pour connaître les expressions génériques acceptées.génériques acceptées.

Page 25: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

25

Filtre egrep(1)Filtre egrep(1)

Système d’exploitation UNIX

Exemple:Exemple:

centi 4> ypcat passwd | egrep ':Pierre.*'parp2808:cRuT6m7jPRJWM:30502:112:Pierre Parent:/export/home/exa/email/parp2808:/bin/cshdoup2609:S3i0oM68.AuVQ:30251:112:Pierre Doucet:/export/home/exa/email/doup2609:/bin/cshrobcad22:Z.VGpH9oanp3M:11423:114:Pierre St-Denis:/usr/people/exa/robcad/robcad22:/bin/cshgaup2806:8fZaJLAA4ybOY:30848:112:Pierre-Luc Gauthier:/export/home/exa/email/gaup2806:/bin/cshdupp0911:LBXJgdV.Zl8lg:30267:112:Pierre Duplessis:/export/home/exa/email/dupp0911:/bin/cshgerp1209:JLiqJTddvRdJY:30307:112:Pierre Hugues Gervaud:/export/home/exa/email/gerp1209:/bin/cshgefp0904:zHizZC2VwOjlQ:30304:112:Pierre Olivier Geffroy:/export/home/exa/email/gefp0904:/bin/cshboup0806:aX.t0b2BGmZcM:30804:112:Pierre-Etienne Bouchard:/export/home/exa/email/boup0806:/bin/cshgrop2001:jzWiOWxd.2iPQ:30966:112:Pierre Grondin:/export/home/exa/email/grop2001:/bin/cshduvp0101:4jttBQNX/rHcg:30271:112:Pierre-Yves Duval:/export/home/exa/email/duvp0101:/bin/cshhabp0410:ytzP1NEqscex2:30857:112:Pierre-Luc Habel:/export/home/exa/email/habp0410:/bin/csh: : :

Page 26: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

26

Filtre egrep(1)Filtre egrep(1)

Système d’exploitation UNIX

Exemple:Exemple:centi 5> ypcat passwd | egrep ':Pierre .*'parp2808:cRuT6m7jPRJWM:30502:112:Pierre Parent:/export/home/exa/email/parp2808:/bin/cshdoup2609:S3i0oM68.AuVQ:30251:112:Pierre Doucet:/export/home/exa/email/doup2609:/bin/cshrobcad22:Z.VGpH9oanp3M:11423:114:Pierre St-Denis:/usr/people/exa/robcad/robcad22:/bin/cshdupp0911:LBXJgdV.Zl8lg:30267:112:Pierre Duplessis:/export/home/exa/email/dupp0911:/bin/csh

gerp1209:JLiqJTddvRdJY:30307:112:Pierre Hugues Gervaud:/export/home/exa/email/gerp1209:/bin/cshgefp0904:zHizZC2VwOjlQ:30304:112:Pierre Olivier Geffroy:/export/home/exa/email/gefp0904:/bin/cshgrop2001:jzWiOWxd.2iPQ:30966:112:Pierre Grondin:/export/home/exa/email/grop2001:/bin/cshstdp2705:srllvkqzhiJho:30582:112:Pierre St-Denis:/export/home/exa/email/stdp2705:/bin/cshberp0604:mOT.Bp4f9rQ3I:30138:112:Pierre Berube:/export/home/exa/email/berp0604:/bin/cshpinp2309:lkVu0qUAYsMmg:30519:112:Pierre Pinard:/export/home/exa/email/pinp2309:/bin/cshdaup2612:6qqRrxMOkIbkA:30220:112:Pierre Noel Dautrey:/export/home/exa/email/daup2612:/bin/csh: : :

Page 27: 1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX

27

Filtre egrep(1)Filtre egrep(1)

Système d’exploitation UNIX

Exemple:Exemple:

$ egrep '[.,!]' *comm1.dat :cher Monsieur Jean.comm1.dat :Non, Pas le Dr. Watson de Windows!comm2.dat :Non, Pas le Dr. Watson de Holms!

Trouver le caractère point ou le caractère Trouver le caractère point ou le caractère virgule ou le caractère point exclamation virgule ou le caractère point exclamation dans tous les fichiers du répertoire dans tous les fichiers du répertoire courant.courant.

Le filtre egrep (grep, fgrep, etc.) est très Le filtre egrep (grep, fgrep, etc.) est très utile dans la recherche des patrons dans utile dans la recherche des patrons dans un fichier ou un ensemble de fichiers. De un fichier ou un ensemble de fichiers. De plus, la vitesse d’exécution de egrep est plus, la vitesse d’exécution de egrep est très très grande!très très grande!