====== 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