Laboratoire Linux Les expressions régulières Objectifs de ce module Voir comme

Laboratoire Linux Les expressions régulières Objectifs de ce module Voir comment utiliser les expressions régulières. Découvrir Grep. Découvrir Sed. En suivant ce module vous allez : Les expressions régulières Plan du module Voici les parties que nous allons aborder: Les expressions régulières Les expressions régulières. La puissance d'un motif. Grep. Pour faire des recherches. Sed. L’éditeur de flux. Les expressions régulières Qu’est-ce qu’une expression régulière ? Plan de la partie Introduction Correspondance et substitution Motifs Ensembles Quantificateurs Début et fin de chaînes Voici les chapitres que nous allons aborder : Les expressions régulières Introduction Travaillent sur du texte : Correspondance (pattern matching) Substitution Sont largement utilisées : Grep Sed Awk Perl … Les expressions régulières : Les expressions régulières Correspondance et substitution Correspondance : La syntaxe de référence (PERL) : Les expressions régulières Substitution : /regexp/ s/regexp1/regexp2/ Correspondance et substitution Définition de l’expression régulière Définition de l’expression régulière Définition de la chaîne Définition de la chaîne Recherche de l’expression régulière dans la chaîne Recherche de l’expression régulière dans la chaîne Remplacement de l’expression dans la chaîne par une nouvelle Remplacement de l’expression dans la chaîne par une nouvelle Processus : Les expressions régulières Retourne la position de l’expression dans la chaîne Retourne la position de l’expression dans la chaîne Motifs Chaque caractère vaut pour lui- même : /a/ recconaîtra 'Marine' mais pas ‘Arriver' Les caractères spéciaux échappés grâce à un anti-slash : /, \, |, (, ), [, [, {, }, ^, $, *, +, ?, . Dans une expressions régulière : Les expressions régulières Motifs Dans une expressions régulière, il y a certains codes spéciaux usuels : \n \r \t \f \e Saut de ligne Retour chariot Tabulation Saut de page Echappement Les expressions régulières Exemple d’utilisation des codes spéciaux : Motifs Les expressions régulières Supprime les retours à la ligne Correspond à Enset Rabat Et non Enset Rabat s/\r// m/Enset \n Rabat/ Ensembles [caractères] matche un caractère parmi ceux entre crochets [abcd] reconnaîtra les lettres a, b, c ou d 'avion' mais pas 'ABriCot', ni 'guADeloupe' Les regroupements : Les expressions régulières Ensembles L’opérateur utilisé est le '-'. [a-z] correspond aux lettres minuscules de l'alphabet. [a-zA-Z] correspond à toutes les lettres de l'alphabet. L’inclusion s’effectue dans l’ordre de la table ASCII. Le tiret vaut pour lui-même en début ou en fin d’ensemble. [0-9a-zA-Z-] ou [-0-9a-zA-Z] Les intervalles : Les expressions régulières Ensembles L’opérateur est le '|'. Souvent utilisé pour les suffixes ou préfixes : /(Free|Open|Net)BSD/ Reconnaît FreeBSD, OpenBSD et NetBSD. L’alternative : Les expressions régulières Ensembles Un ensemble peut être inclus n’importe où dans une expression régulière : /to[0-9]to/ L’accent circonflexe en début d’intervalle signifie 'tout sauf' : /[^0-9]info/ ne matchera pas 0info, ni 5info, ... Quelques précisions : Les expressions régulières Ensembles Dans une expressions régulière, il y a des ensembles prédéfinis : \d \D \w \W \s Un chiffe, équivaut à [0-9] Tout sauf un chiffre équivaut à [^0-9] Alphanumérique : [0-9a-zA-Z_] Non alphanumérique :[^0-9a-zA-Z_] Un espacement : [ \n\t\r\f] Les expressions régulières \S Tout sauf un espacement : [ ^ \n\t\r\f] Quantificateurs Possibilité de regrouper plusieurs caractères en un motif grâce au parenthèses : /ab*/ matchera une chaîne contenant 'a' suivi de 0 ou plusieurs 'b'. /(ab)*/ matchera une chaîne contenant 'ab' 0 ou plusieurs fois. Le symbole '.' représente 1 caractère, peut importe lequel : /l.nux/ reconnaît 'linux' mais pas 'liinux'. Les quantificateurs : Les expressions régulières Quantificateurs Dans une expressions régulière, on peut utiliser des quantificateurs standards : * + ? {n} {n,} 0 fois ou plus 1 fois ou plus 0 ou 1 fois Exactement n fois Au moins n fois Les expressions régulières {,n} Au plus n fois {m,n} Entre m et n fois Début et fin de chaînes Détectés par '^' et '$'. '^' correspond au début d’une chaîne. '$' correspond à la fin d’une chaîne. /^Linux.*Torvalds$/ matchera toute chaîne commençant par 'Linux' et se finissant par 'Torvalds'. Les début et fin de chaînes sont : Les expressions régulières Pause-réflexion Avez-vous des questions ? Les expressions régulières Pause-réflexion Les expressions régulières Pattern matching Corrélation Substitution Gestion des dépendances Quelles sont les 2 grandes fonctions des expressions régulières ? Grep Les expressions régulières Plan de la partie Rappel Utilisation Exemple Voici les chapitres que nous allons aborder : Grep La commande Grep Grep permet de faire des recherches dans un fichier. Grep Syntaxe générale : Options : -i -n -v Insensible à la casse Préfixe le numéro de ligne Inverse l’affichage grep [options] regexp fichier -c -h Compte le nombre de résultat N’affiche pas le fichier quand il y en a plusieurs -E Interprète l’expression regex Exemple Grep Afficher les commentaires d’un fichier : Reconnaître si un nom d’utilisateur est valide : grep ‘^#’ fichier grep ‘[a-z_][a-z0-9_]*’ Pause-réflexion Avez-vous des questions ? Grep Sed Stream Editor Les expressions régulières Plan de la partie La commande Sed Afficher et supprimer Remplacer Ajouter et enregistrer Scripts Sed Echappement Voici les chapitres que nous allons aborder : Sed La commande Sed Sed permet de manipuler du texte. Différentes fonctions : Ajouter Supprimer Remplacer Ajouter Afficher … Sed La commande Sed SED SED Données Données Fonctionnement : Sed Actions Actions Données éditées Données éditées La commande Sed Syntaxe générale : Sed Exemple : Afficher les 4 premières lignes d’un fichier Options : -n -f -e N’afficher que les lignes correspondantes Utiliser un script Utiliser plusieurs commandes sed [options] ‘commande’ fichier sed –n ‘1,4p’ /etc/passwd Afficher et supprimer Syntaxe générale d’une commande (pattern matching) : Sed Exemples : /regexp/action Action Description d p Supprimer Afficher Afficher et supprimer /Hello/d : Supprime les lignes contenant le mot "Hello". /^[Ll]inux/!d : Supprime les lignes ne commençant pas par "Linux" ou "linux". /[a-zA-Z0-9]$/p : Affiche les lignes finissant par un caractère alphanumérique. Sed Exemples : Remplacer s/[Uu]nix/Linux/ : Remplace la première occurrence de "Unix" ou "unix" par Linux. s/[0-9]//g : Supprime tous les chiffres. Syntaxe générale d’une commande (substitution) : Sed Exemples : s/regexp_old/regexp_new/action Ajouter et enregistrer Sed Ajout : Enregistrement : s/^#[^!].*$/& v1\.0/gw file1 : Ajoute ‘v1.0’ à toutes les lignes commençant par ‘#’ qui ne sont pas un shebang et enregistre le résultat dans file1. s/regexp/& ajout/ s/regexp_old/regexp_new/w fichier Exemple : Scripts Sed Sed Syntaxe générale : Exemple : Remplacer les occurences de "emacs" par "vi". Supprimer la première occurrence de "Gates", etc … sed [options] –f script fichier #! /usr/bin/sed –nf s/emacs/vi/g /[Gg][Aa][Tt][Ee][Ss]/d Echappement Permet d’échapper les caractères spéciaux. Exemple : s/\/usr\/src\/linux/\$SRC_DIR/g Le caractère '\' Sed Possibilité d’utiliser '@' ou '#' comme séparateur. Exemples : s@/usr/src/linux@\$SRC_DIR@g Les séparateurs : Pause-réflexion Avez-vous des questions ? Sed Pause-réflexion Sed g supprimer enregistrement ajout afficher &ajout p d w Toutes les occurences Relier les actions à leurs descriptions : Sed Sed Les expressions régulières Les expressions régulières Résumé du module Grep Grep Les expressions régulières Pour aller plus loin… Modules de cours Publications Sites web www.labo-linux.org www.labo-mandriva.com **Liste de modules de cours connexes. Conférences **Liste de conférences ou meetings. Si vous voulez approfondir vos connaissances: www.supinfo.com **URL pour obtenir l’ouvrage. Les expressions régulières www.dunod.com Linux MCU Félicitations Vous avez suivi avec succès le module de cours n°04 Les expressions régulières Fin Afin d'assimiler l'utilisation des expressions régulières, il est conseillé de pratiquer le plus possilbe Les expressions régulières uploads/s3/ 04-expressions-regulieres.pdf

  • 31
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager