Tutoriel d'expression régulière Linux: exemple de Grep Regex

Table des matières:

Anonim

Que sont les expressions régulières Linux?

Les 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 tels que 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.

  • Expressions régulières de base
  • Expressions régulières d'intervalle
  • Expressions régulières étendues
  • Résumé

Cliquez ici 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 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
* 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écuter un exemple de chat pour voir le contenu d'un fichier existant

Recherchez le 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. Elles 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'un 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 voulions 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 des accolades

La syntaxe du développement entre 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 à l'aide du développement d'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
  • Certaines expressions régulières de base sont:
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 d'accolades est utilisée pour générer des chaînes. Cela aide à créer plusieurs chaînes à partir d'une seule.