====== Les expressions régulières ====== Peu d'outils font gagner autant de temps sur la réalisation d'opérations répétitives et fastidieuses, libérant du "temps de cerveau disponible" pour des tâches plus intéressantes. [[http://www.postgresonline.com/journal/index.php?/archives/152-Regular-Expressions-in-PostgreSQL.html|Regular Expressions in PostgreSQL]] ==== Les caractères ==== * . représente n'importe quel caractère * [abc123] tout caractère simple dans l'ensemble * [^abc123] tout caractère simple qui n'est pas dans l'ensemble * [0-9] un chiffre * [^0-9] un chiffre ==== les classes de caractère ==== [[:alpha:, digit...]] ==== les quantificateurs ==== * * * \+ * \? * \{i\} * \{i,\} * \{i,j\} ==== les ancres ==== * ^ en début de ligne * $ en fin de ligne : grep "bash$" /etc/passwd * \< le début d'un mot * \> la fin d'un mot ==== Ou logique ==== * représenté par le pipe "|" * il doit être précédé du backslash ==== Commandes système ==== * grep "regex" f1 f2 f3 f4 f5 * -i insensible à la casse * -n donne le numéro de la ligne contenant l'occurence * -r recursivité : prend un répertoire * egrep * fgrep * [[outils:expressions_regulieres#sed|sed]] ==== SED ==== SED est un Stream EDiteur, il analyse chaque ligne. Sid le pattern est trouvé, il execute sinon il passe à la ligne suivante Sa présentation sur wikipedia : http://fr.wikipedia.org/wiki/Stream_Editor ===exemples=== sed 's/chien/chat/g' animaux.txt sed '1,50s/chien/chat/g' animaux.txt (entre les lignes1 et 50) sed '/digby/,/duncan/s/chien/chat/g' animaux.txt (entre les mots digby et duncan) sed -e 's/chien/chat/' -e 's/hi/lo/' animaux.txt sed -f mon_fichier_de_motifs animauw.txt === ressources === * http://sed.sourceforge.net/sed1line_fr.html * http://gskinner.com/RegExr/ * http://www.jedit.org