Tutoriel sur les expressions régulières Linux : exemple de Grep Regex
Que sont les expressions régulières Linux ?
Expressions régulières Linux sont des caractères spéciaux qui aident à rechercher des données et à faire correspondre des modèles complexes. Les expressions régulières sont abrégées en « regexp » ou « regex ». Ils sont utilisés dans de nombreux programmes Linux comme grep, bash, rename, sed, etc.
Types d'expressions régulières
Pour faciliter la compréhension, apprenons les différents types de Regex un par un.
Cliquez sur here. si la vidéo n'est pas accessible
Expressions régulières de base
Certaines des commandes couramment utilisées avec les expressions régulières sont tr, sed, vi et grep. Vous trouverez ci-dessous quelques-unes des Regex de base.
Symbole | Descriptions |
---|---|
. | remplace n'importe quel caractère |
^ | correspond au début de la chaîne |
$ | correspond à la fin de la chaîne |
* | correspond à zéro ou plusieurs fois le caractère précédent |
\ | Représenter des caractères spéciaux |
() | Groupes d'expressions régulières |
? | Correspond à exactement un caractère |
Voyons un exemple.
Exécutez l'exemple cat pour voir le contenu d'un fichier existant
Recherchez du contenu contenant la lettre « a ».
»^' correspond au début d'une chaîne. Cherchons le contenu qui COMMENCE par un
Seules les lignes commençant par un caractère sont filtrées. Les lignes qui ne contiennent pas le caractère « a » au début sont ignorées.
Regardons un autre exemple –
Sélectionnez uniquement les lignes qui se terminent par t en utilisant $
Expressions régulières d'intervalle
Ces expressions nous renseignent sur le nombre d'occurrences d'un caractère dans une chaîne. Ils sont
Expression | Description |
---|---|
{n} | Correspond exactement au caractère précédent apparaissant 'n' fois |
{n,m} | Correspond au caractère précédent apparaissant 'n' fois mais pas plus de m |
{n, } | Correspond au caractère précédent uniquement lorsqu'il apparaît « n » fois ou plus |
Exemple :
Filtrer toutes les lignes contenant le caractère « p »
Nous voulons vérifier que le caractère 'p' apparaît exactement 2 fois dans une chaîne l'une après l'autre. Pour cela la syntaxe serait :
cat sample | grep -E p\{2}
Remarque : Vous devez ajouter -E avec ces expressions régulières.
Expressions régulières étendues
Ces expressions régulières contiennent des combinaisons de plusieurs expressions. Certains d'entre eux sont:
Expression | Description |
---|---|
\+ | Correspond à une ou plusieurs occurrences du caractère précédent |
\? | Correspond à zéro ou une occurrence du caractère précédent |
Exemple :
Recherche de tous les caractères 't'
Supposons que nous souhaitions filtrer les lignes où le caractère « a » précède le caractère « t ».
Nous pouvons utiliser une commande comme
cat sample|grep "a\+t"
Expansion de l'accolade
La syntaxe du développement des accolades est soit une séquence, soit une liste d'éléments séparés par des virgules entre accolades « {} ». Les éléments de début et de fin d’une séquence sont séparés par deux points « .. ».
Quelques exemples:
Dans les exemples ci-dessus, la commande echo crée des chaînes en utilisant l'expansion des accolades.
Résumé :
- Les expressions régulières sont un ensemble de caractères utilisés pour vérifier les modèles dans les chaînes
- Ils sont également appelés « regexp » et « regex ».
- Il est important d'apprendre les expressions régulières pour écrire des scripts
- Voici quelques expressions régulières de base :
Symbole | Descriptions |
---|---|
. | remplace n'importe quel caractère |
^ | correspond au début de la chaîne |
$ | correspond à la fin de la chaîne |
- Certaines expressions régulières étendues sont :
Expression | Description |
---|---|
\+ |
Correspond à une ou plusieurs occurrences du caractère précédent |
\? | Correspond à zéro ou une occurrence du caractère précédent |
- Certaines expressions régulières d'intervalle sont :
Expression | Description |
---|---|
{n} | Correspond exactement au caractère précédent apparaissant 'n' fois |
{n,m} | Correspond au caractère précédent apparaissant 'n' fois mais pas plus de m |
{n, } | Correspond au caractère précédent uniquement lorsqu'il apparaît « n » fois ou plus |
- L'expansion des accolades est utilisée pour générer des chaînes. Cela aide à créer plusieurs chaînes à partir d’une seule.