Support de cours Unix avec exemples, tutoriel & guide de travaux pratiques UNIX en pdf.
Expressions regulieres
Exemples:
• L(ab) = {m1m2 avec m1 ∈ {a} et m2 ∈ {b}} = {ab}
• L(ab ∗ c) = {ac, abc, abbc, abbbc, . . .}
On peut alors d´efinir:
• . comme l’alternative sur toutes les lettres de l’alphabet a1 | a2 | . . .
• r+ comme rr∗
• etc.
Syntaxe des expressions regulieres utilisees par ed, vi, grep, sed:
• . d´esigne un caract`ere quelconque
• c* repr´esente 0 ou plus r´ep´etitions du caract`ere pr´ec´edent
• […] repr´esente l’un quelconque des caract`eres `a l’int´erieur des crochets
• [^…] repr´esente un caract`ere quelconque diff´erent de ceux `a l’int´erieur des crochets
• c{n,m} repr´esente un nombre compris entre n et m it´erations de ce qui pr´ec`ede
• ^r repr´esente le d´ebut de ligne
• r$ repr´esente la fin de ligne
• \c annule l’interpr´etation du caract`ere c
• c+ repr´esente une occurrence ou plus
• c? repr´esente z´ero ou une occurrence
• r1|r2 repr´esente l’alternation
• (r) sert `a grouper
Exemples
• ^…$ repr´esente toutes les lignes contenant exactement 3 caract`eres
• ^$ repr´esente toutes les lignes vides
• [1-9]\.[1-9] repr´esente toutes les chaˆınes de 3 caract`eres: deux chiffres s´epar´es par un point
• ^[a-zA-Z]*:.* repr´esente toutes les lignes commen¸cant par une chaˆıne alphab´etique ´eventuellement vide, suivie du caract`ere “:”
La commande grep
Filtre s´electionnant les lignes correspondant `a une expression r´eguli`ere. grep [option] regexpr [fichier …]
Options:
• -i ignore la casse
• -c n’imprime que le nombre de lignes s´electionn´ees
• -v imprime les lignes non repr´esent´ees par l’expression r´eguli`ere
Code de retour:
• 0: des lignes ont et´ s´electionn´ees
• 1: aucune ligne ne correspond
La commande egrep interpr`ete (“comprend”) les m´etacaract`eres ?, +, {, |, (, et )
La commande grep ne les comprend pas.
La commande fgrep ne comprend aucun m´etacaract`ere (elle ne cherche que des chaˆınes, et ne les interpr`ete pas comme des motifs).
La commande sed
sed (stream editor) est une sorte d’´editeur `a la ed, mais non interactif.
sed [options] [script-file] [file-list]
Options:
• -f lit les commandes `a appliquer depuis script-file
• -n n’imprime pas les lignes de file-list dans la sortie standard
Etapes de traitement par sed:
• sed lit une ligne de l’entr´ee
– sed lit la premi`ere commande du script, et, si il y a filtrage, ex´ecute l’action
– sed lit la prochaine commande, et, si filtrage, ex´ecute l’action correspondante
– Ce processus est r´ep´et´ jusqu’`a ce que toutes les commandes du script soit trait´ees
• idem pour la ligne suivante
• et ainsi de suite
Note: sed ne modifie pas les fichiers qu’il traite, il imprime des r´esultats dans la sortie standard.
1. Un dernier mot sur les processus: la primitive exec
2. Environnement: stty
3. Expressions regulieres
4. La commande grep
……..