


Utilisation avancée de «grep» avec des expressions régulières dans Linux
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.
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.

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
):

# Correspond aux lignes avec "erreur" suivie d'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:

grep '\ broot \ b' / 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 versionsgrep
, mais pour une conformité stricte POSIX, utilisez[[:<:]]
et[[:>:]]
:grep '[[: <:]] root [[:>:]]' / 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 '^ avertissement' syslog.log # Lignes se terminant par ".conf" grep '\ .conf $' config_list.txt # Lignes vierges (commencez et terminez avec rien) grep '^ $' file.txt
Faites correspondre plusieurs modèles (alternance)
Utiliser |
en Ere pour correspondre à un modèle ou à un autre:
grep -e 'fatal | error | critique' System.log
Cela trouve toutes les lignes contenant l'un des trois mots clés.
Vous pouvez regrouper des alternatives:
grep -e '(avertissement | notification)' / 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 '^ [[: alpha:] [: espace:]] * $' notes.txt
Quantificateurs pour la répétition
Contrôlez combien de fois un modèle apparaît:
-
*
→ 0 ou plus -E
)-
?
→ 0 ou 1 (avec-E
) -
{n,m}
→ entre n et m fois
Exemples:
# OCTET ADRESSE IP (1-3 chiffres) grep -e '[0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3}' Access.log # Numéro de téléphone: 3 chiffres, tableau de bord, 4 chiffres grep -e '[0-9] {3} - [0-9] {4}' 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 casgrep -i 'error' logfile.txt
-v
- Match inversé (lignes ne correspondant pas)grep -v '^ \ s * $' file.txt # exclure les lignes vierges
-n
- Afficher les numéros de lignescript grep -n 'timeout'
-r
- Recherche récursive dans les répertoiresgrep -re 'user_id = [0-9]' / var / www / app /
-o
- Afficher uniquement la partie correspondante (utile pour l'extraction)Echo "ID: ABC123, statut: OK" | grep -o '[a-z0-9] \ {6 \}' # Sortie: ABC123
-P
- Utilisez un regex compatible perl (si disponible)grep -p '\ d {4} - \ d {2} - \ d {2}' 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 '[0-9]' 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 '\ b (erreur | échoué) \ b' log.txt
Combinez avec d'autres outils:
# Compter les codes d'erreur uniques Grep -Erd 'Error [0-9]' 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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

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

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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

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.

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.

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.

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.

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

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.
