Rappel sur les méta-caractères (ou caractères spéciaux) des expressions régulières : ------------------------------------------------------------------------------------ Ce sont des caractères qui sont interprétés comme des opérateurs dans un contexte expression rationnelle. Le caractère . : représente un caractère quelconque, sauf \n le caractère * : représente la répétition du caractère précédent le caractère + : représente au moins une occurence de l'expression régulière précédente le caractère ? : représente au plus une occurence de l'expression régulière précédente [...] : l'un des caractères de l'ensemble donné entre crochets [^..] : en début de crochets le ^ indique la recherche dans le complémentaire de l'ensemble ^ : recherche en début de ligne $ : recherche en fin de ligne le caractère \ : annule le rôle de méta-caractère, pour jouer le rôle du caractère usuel {n,m} : indique le nombre de répétitions attendu du caractère précédent (entre n et m fois) {n} : indique le nombre exact de répétitions attendu du caractère précédent {n,} : indique au moins n répétitions du caractère précédent | : joue le rôle de "ou" entre 2 expr rég. Parenthèses de mémorisation : ----------------------------- La présence de parenthèses permet de mémoriser une ou plusieurs parties de l'expression qu'elle entoure, sans modifier son interprétation. Pour rappeler ces valeurs mémorisées, on utilise les notations \1, \2 ... qui correspondent aux valeurs reconnues de même ordre. Ainsi eleve(\d).+poste\1 sera satisfait par eleve3 au poste3 et non par eleve5 au poste3 ! Les lignes contenant la chaîne de caractère IPV6 sans tenir compte de la casse : -------------------------------------------------------------------------------- grep -r -i "IPV6" /etc L'option -r ou -R ou --recursive : * Permet de lire chaque fichier dans chaque répertoire, récursivement. * Cette option est équivalente à l'option -d recurse. L'option -i ou --ignore-case : * Permet d'ignorer la distinction de casse (majuscule ou minuscule) dans l'expression que l'on recherche et dans le fichier où l'on réalise cette recherche. Les lignes qui commencent par une variable en majuscule suivie du caractère d'égalité : --------------------------------------------------------------------------------------- grep -r -E "^[[:upper:]]*=" /etc ou sinon : grep -r -E "^[A-Z]*=" /etc Certaines classes de caractères sont déjà prédéfinies avec des expressions entre crochets. Ces expressions sont les suivantes : [:alnum:] : détection des caractères alpha-numériques (par exemple, a, 1, ...), cette expression revient à [0-9A-Za-z] [:alpha:] : détection des caractères alphabétiques seulement [:cntrl:] : [:digit:] : [:graph:] : [:lower:] : détection des minuscules [:print:] : [:punct:] : détection des caractères de ponctuation (par exemple, ., ?, ...) [:space:] : détection des caractères d'espacement (par exemple, \r, \n, \t, ...) [:upper:] : détection des majuscules [:xdigit:] : Le caractère ^ signifie que l'on recherche les lignes débutant par le caractère qui lui est accolé à la suite, par exemple : grep "^s" va donner l'ensemble des lignes commençant par le caractère s. Le caractère $ signifie que l'on recherche les lignes finissant par le caractère qui lui est accolé avant, par exemple : grep "n$" va donner l'ensemble des lignes finissant par le caractère n. Les lignes qui ne contiennent qu'une chaîne de caractères, éventuellement entourée d'espaces : ---------------------------------------------------------------------------------------------- grep -r -E "^ *[a-zA-Z]+ *$" /etc ou sinon : grep -r -E "^ *[[:alpha:]]+ *$" /etc