Table des matières
1. Comprendre les expressions régulières de base vs étendues
2.
Faire correspondre les limites des mots
Faire correspondre les lignes commençant / se terminant par des modèles spécifiques
Faites correspondre plusieurs modèles (alternance)
3. Classes de caractères et quantificateurs
Utiliser des classes de caractères prédéfinies
Quantificateurs pour la répétition
4. Options avancées qui améliorent l'utilisation des examens
5. Pièges et astuces communes
Maison Tutoriel système Linux Utilisation avancée de «grep» avec des expressions régulières dans Linux

Utilisation avancée de «grep» avec des expressions régulières dans Linux

Aug 13, 2025 pm 12:51 PM
Expressions régulières grep

Utilisez -e pour les expressions régulières étendues pour simplifier la syntaxe de modèle avec ,? 2. Appliquer les limites des mots avec \ b ou posix [[: <:>:]] pour faire correspondre les mots entiers; 3. Modèles d'ancrage utilisant ^ et $ pour cibler les débuts et les fins de ligne; 4. Combinez plusieurs modèles avec | en ere pour logique ou correspondant; 5. Tire les classes de caractères POSIX comme [[: Digit:]] et les quantificateurs comme * ,,?, et {n, m} pour un contrôle de répétition précis; 6. Améliorer les recherches avec des options comme -i pour l'insensibilité au cas, -v pour inverser les correspondances, -n pour afficher les numéros de ligne, -r pour la recherche répertoire récursif, -o pour extraire uniquement les pièces correspondantes, et -p pour le regex compatible perl lorsqu'ils sont disponibles; 7. Citez toujours les modèles pour empêcher l'expansion des coquilles, les modèles de test progressivement, utilisez --Color = toujours pour la visibilité, et combinez le GREP avec des outils tels que le tri et l'UNIQ pour un traitement de texte avancé, garantissant des résultats efficaces et précis dans l'analyse du journal, la révision du code et les tâches d'administration système.

Utilisation avancée de «grep» avec des expressions régulières dans Linux

L'utilisation grep avec des expressions régulières dans Linux va bien au-delà des recherches de texte simples. Alors que l'utilisation grep de base aide à trouver des chaînes littérales, la combinant avec des expressions régulières (regex) déverrouille les capacités de correspondance de motifs puissantes essentielles pour l'analyse des journaux, l'examen du code et l'administration du système. Voici comment exploiter efficacement les fonctionnalités grep avancées.

Utilisation avancée de «grep» avec des expressions régulières dans Linux

1. Comprendre les expressions régulières de base vs étendues

grep prend en charge deux arômes regex principaux: les expressions régulières de base (BRE) et les expressions régulières étendues (ERE) .

Par défaut, grep utilise Bre, où des caractères spéciaux comme , ? , | , ( , et ) sont traités comme des littéraux à moins d'échapper. Pour utiliser Ere et éviter le surclassement de bar, utilisez le drapeau -E (ou egrep ):

Utilisation avancée de «grep» avec des expressions régulières dans Linux
 # Correspond aux lignes avec "erreur" suivie d&#39;un ou plusieurs chiffres
grep "error [0-9] \" logfile.txt # Bre: doit être échappé
grep -e "error [0-9]" logfile.txt # ere: fonctionne directement

Utilisez -E pour des modèles plus propres et plus lisibles, en particulier lors de l'alternance ou du regroupement.


2.

Faire correspondre les limites des mots

Utilisez \b pour faire correspondre les mots entiers uniquement. Cela évite les matchs partiels:

Utilisation avancée de «grep» avec des expressions régulières dans Linux
 grep &#39;\ broot \ b&#39; / etc / passwd

Cela trouve des lignes contenant le mot exact "root", pas "rootuser" ou "diffuser".

Remarque : les limites des mots ( \b ) sont prises en charge dans la plupart des versions grep , mais pour une conformité stricte POSIX, utilisez [[:<:]] et [[:>:]] :

 grep &#39;[[: <:]] root [[:>:]]&#39; / etc / passwd

Faire correspondre les lignes commençant / se terminant par des modèles spécifiques

Ancre vos modèles avec ^ et $ :

 # Lignes commençant par "avertissement"
grep &#39;^ avertissement&#39; syslog.log

# Lignes se terminant par ".conf"
grep &#39;\ .conf $&#39; config_list.txt

# Lignes vierges (commencez et terminez avec rien)
grep &#39;^ $&#39; file.txt

Faites correspondre plusieurs modèles (alternance)

Utiliser | en Ere pour correspondre à un modèle ou à un autre:

 grep -e &#39;fatal | error | critique&#39; System.log

Cela trouve toutes les lignes contenant l'un des trois mots clés.

Vous pouvez regrouper des alternatives:

 grep -e &#39;(avertissement | notification)&#39; / var / log / messages

3. Classes de caractères et quantificateurs

Utiliser des classes de caractères prédéfinies

Au lieu de [0-9a-zA-Z] , utilisez des classes POSIX pour plus de clarté et de portabilité:

  • [[:digit:]] → chiffres
  • [[:alpha:]] → lettres
  • [[:alnum:]] → lettres et chiffres
  • [[:space:]] → Whitespace
  • [[:punct:]] → ponctuation

Exemple:

 # Trouver des lignes avec seulement des lettres et des espaces
grep &#39;^ [[: alpha:] [: espace:]] * $&#39; notes.txt

Quantificateurs pour la répétition

Contrôlez combien de fois un modèle apparaît:

  • * → 0 ou plus
  • → 1 ou plus (utilisation avec -E )
  • ? → 0 ou 1 (avec -E )
  • {n,m} → entre n et m fois

Exemples:

 # OCTET ADRESSE IP (1-3 chiffres)
grep -e &#39;[0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3}&#39; Access.log

# Numéro de téléphone: 3 chiffres, tableau de bord, 4 chiffres
grep -e &#39;[0-9] {3} - [0-9] {4}&#39; contacts.txt

Astuce : Échappez les points dans IPS ( \. ) Pour éviter de faire correspondre n'importe quel personnage.


4. Options avancées qui améliorent l'utilisation des examens

  • -i - Recherche insensible au cas

     grep -i &#39;error&#39; logfile.txt
  • -v - Match inversé (lignes ne correspondant pas)

     grep -v &#39;^ \ s * $&#39; file.txt # exclure les lignes vierges
  • -n - Afficher les numéros de ligne

     script grep -n &#39;timeout&#39;
  • -r - Recherche récursive dans les répertoires

     grep -re &#39;user_id = [0-9]&#39; / var / www / app /
  • -o - Afficher uniquement la partie correspondante (utile pour l'extraction)

     Echo "ID: ABC123, statut: OK" | grep -o &#39;[a-z0-9] \ {6 \}&#39;
    # Sortie: ABC123
  • -P - Utilisez un regex compatible perl (si disponible)

     grep -p &#39;\ d {4} - \ d {2} - \ d {2}&#39; file.log # \ d raccourci pour les chiffres

    Remarque: -P n'est pas POSIX mais largement pris en charge sur Linux.


5. Pièges et astuces communes

  • Citez toujours vos modèles pour éviter l'expansion des coquilles:

     grep &#39;[0-9]&#39; fichier # bon
    grep [0-9] fichier # bad: shell peut développer [0-9] comme nom de fichier
  • Testez les modèles complexes étape par étape: démarrez simple, puis ajoutez des ancres, des groupes ou des quantificateurs.

  • Utiliser --color=always pour mettre en évidence les correspondances:

     grep --color = toujours -e &#39;\ b (erreur | échoué) \ b&#39; log.txt
  • Combinez avec d'autres outils:

     # Compter les codes d&#39;erreur uniques
    Grep -Erd &#39;Error [0-9]&#39; app.log | Trier | Uniq -C

    Fondamentalement, maîtriser grep avec Regex signifie savoir comment combiner des modèles expressifs avec les bonnes options. Que vous filtiez les journaux ou les fichiers de configuration d'analyse, ces techniques rendent le traitement de texte plus rapide et plus précis. N'oubliez pas: utilisez -E pour le style regex moderne, citez vos modèles et ancre en cas de besoin.

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment faire correspondre les horodatages à l'aide d'expressions régulières dans Go ? Comment faire correspondre les horodatages à l'aide d'expressions régulières dans Go ? Jun 02, 2024 am 09:00 AM

Dans Go, vous pouvez utiliser des expressions régulières pour faire correspondre les horodatages : compilez une chaîne d'expression régulière, telle que celle utilisée pour faire correspondre les horodatages ISO8601 : ^\d{4}-\d{2}-\d{2}T \d{ 2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ . Utilisez la fonction regexp.MatchString pour vérifier si une chaîne correspond à une expression régulière.

Validation des expressions régulières PHP : détection du format numérique Validation des expressions régulières PHP : détection du format numérique Mar 21, 2024 am 09:45 AM

Vérification des expressions régulières PHP : détection du format numérique Lors de l'écriture de programmes PHP, il est souvent nécessaire de vérifier les données saisies par l'utilisateur. L'une des vérifications courantes consiste à vérifier si les données sont conformes au format numérique spécifié. En PHP, vous pouvez utiliser des expressions régulières pour réaliser ce type de validation. Cet article explique comment utiliser les expressions régulières PHP pour vérifier les formats de nombres et fournit des exemples de code spécifiques. Tout d’abord, examinons les exigences courantes de validation du format numérique : Entiers : contiennent uniquement des nombres de 0 à 9, peuvent commencer par un signe plus ou moins et ne contiennent pas de points décimaux. point flottant

Comment valider une adresse e-mail dans Golang à l'aide d'une expression régulière ? Comment valider une adresse e-mail dans Golang à l'aide d'une expression régulière ? May 31, 2024 pm 01:04 PM

Pour valider les adresses e-mail dans Golang à l'aide d'expressions régulières, procédez comme suit : Utilisez regexp.MustCompile pour créer un modèle d'expression régulière qui correspond aux formats d'adresse e-mail valides. Utilisez la fonction MatchString pour vérifier si une chaîne correspond à un modèle. Ce modèle couvre la plupart des formats d'adresses e-mail valides, notamment : Les noms d'utilisateur locaux peuvent contenir des lettres, des chiffres et des caractères spéciaux : !.#$%&'*+/=?^_{|}~-`Les noms de domaine doivent contenir au moins un lettre, suivie de lettres, de chiffres ou de tirets. Le domaine de premier niveau (TLD) ne peut pas comporter plus de 63 caractères.

Filtrage des caractères chinois : pratique des expressions régulières PHP Filtrage des caractères chinois : pratique des expressions régulières PHP Mar 24, 2024 pm 04:48 PM

PHP est un langage de programmation largement utilisé, particulièrement apprécié dans le domaine du développement web. Dans le processus de développement Web, nous rencontrons souvent le besoin de filtrer et de vérifier le texte saisi par l'utilisateur, parmi lesquels le filtrage des caractères est une opération très importante. Cet article explique comment utiliser les expressions régulières en PHP pour implémenter le filtrage des caractères chinois et donne des exemples de code spécifiques. Tout d'abord, nous devons préciser que la plage Unicode de caractères chinois va de u4e00 à u9fa5, c'est-à-dire que tous les caractères chinois se trouvent dans cette plage.

Comment vérifier le mot de passe à l'aide d'une expression régulière dans Go ? Comment vérifier le mot de passe à l'aide d'une expression régulière dans Go ? Jun 02, 2024 pm 07:31 PM

La méthode d'utilisation des expressions régulières pour vérifier les mots de passe dans Go est la suivante : Définissez un modèle d'expression régulière qui répond aux exigences minimales de mot de passe : au moins 8 caractères, y compris les lettres minuscules, les lettres majuscules, les chiffres et les caractères spéciaux. Compilez les modèles d'expressions régulières à l'aide de la fonction MustCompile du package regexp. Utilisez la méthode MatchString pour tester si la chaîne d'entrée correspond à un modèle d'expression régulière.

Guide d'utilisation des expressions régulières Golang Guide d'utilisation des expressions régulières Golang Apr 08, 2024 pm 02:15 PM

Les expressions régulières dans Go fournissent un puissant outil de traitement de chaînes : utilisez le package regexp pour les opérations sur les expressions régulières. Utilisez la syntaxe des expressions régulières pour faire correspondre et manipuler les chaînes. Correspond aux classes de caractères, aux caractères répétitifs, aux groupements, aux ancres et aux limites. Faites correspondre les chaînes avec MatchString, extrayez les correspondances avec FindStringSubmatch et remplacez les chaînes par ReplaceAllString. Les scénarios d'application incluent la vérification des adresses e-mail, l'extraction de liens HTML, etc.

PHP renvoie la chaîne de la position de début à la position de fin d'une chaîne dans une autre chaîne PHP renvoie la chaîne de la position de début à la position de fin d'une chaîne dans une autre chaîne Mar 21, 2024 am 10:31 AM

Cet article expliquera en détail comment PHP renvoie la chaîne de la position de début à la position de fin d'une chaîne dans une autre chaîne. L'éditeur pense que c'est assez pratique, je le partage donc avec vous comme référence, j'espère que vous finirez de lire. cet article. Vous pouvez tirer quelque chose de cet article. Utilisez la fonction substr() en PHP pour extraire des sous-chaînes d'une chaîne. La fonction substr() peut extraire des caractères dans une plage spécifiée d'une chaîne. La syntaxe est la suivante : substr(string,start,length) où : string : la chaîne d'origine à partir de laquelle la sous-chaîne doit être extraite. start : L'index de la position de départ de la sous-chaîne (à partir de 0). length (facultatif) : la longueur de la sous-chaîne. Si non précisé, alors

Comment détecter une URL avec une expression régulière dans Golang ? Comment détecter une URL avec une expression régulière dans Golang ? May 31, 2024 am 10:32 AM

Les étapes pour détecter les URL dans Golang à l'aide d'expressions régulières sont les suivantes : Compilez le modèle d'expression régulière à l'aide de regexp.MustCompile(pattern). Le modèle doit correspondre aux paramètres de protocole, de nom d'hôte, de port (facultatif), de chemin (facultatif) et de requête (facultatif). Utilisez regexp.MatchString(pattern,url) pour détecter si l'URL correspond au modèle.

See all articles