Bref : Dans ce guide, nous aborderons quelques-uns des exemples pratiques de la commande egrep. Après avoir suivi ce guide, les utilisateurs pourront effectuer une recherche de texte plus efficacement sous Linux.
Avez-vous déjà été frustré parce que vous ne parvenez pas à trouver les informations requises dans les journaux ? L’extraction des informations requises à partir d’un grand ensemble de données est une tâche complexe et chronophage.
Les choses deviennent vraiment difficiles si le système d’exploitation ne fournit pas les bons outils et voici Linux pour vous sauver. Linux fournit divers utilitaires de filtrage de texte tels que awk, sed, Couperetc.
Cependant, egrep est l’un des utilitaires les plus puissants et les plus couramment utilisés pour le traitement de texte sous Linux, et nous allons discuter de quelques exemples de égrep commande.
La égrep La commande sous Linux est reconnue par la famille de la commande grep, qui est utilisée pour rechercher et faire correspondre un modèle particulier dans les fichiers. Cela fonctionne de la même manière que grep -E (grep Extended regex), mais il recherche principalement un fichier particulier ou même des lignes à la ligne ou imprime la ligne dans le fichier donné.
La syntaxe de la égrep commande est la suivante :
$ egrep [OPTIONS] PATTERNS [FILES]
Créons un exemple de fichier texte avec le contenu suivant pour utiliser un exemple :
$ cat sample.txt
Ici, nous pouvons voir que le fichier texte est prêt. Voyons maintenant quelques exemples courants qui peuvent être utilisés au quotidien.
1. Comment trouver un motif dans un seul fichier
Commençons par un exemple simple de correspondance de modèle, où nous pouvons utiliser la commande ci-dessous pour rechercher une chaîne professional
dans un exemple.txt dossier:
$ egrep professionals sample.txt
Ici, nous pouvons voir que la commande imprime la ligne qui contient le motif spécifié.
2. Comment mettre en surbrillance les modèles correspondants dans le fichier
Nous pouvons rendre la sortie plus informative en mettant en surbrillance le modèle correspondant. Pour y parvenir, nous pouvons utiliser le --color
option de la égrep commande. Par exemple, la commande ci-dessous mettra en surbrillance le texte professionals
en couleur rouge :
$ egrep --color=auto professionals sample.txt
Ici, nous pouvons voir que la même sortie est plus informative que la précédente. Aussi, nous pouvons facilement identifier que le mot professionals
est répété deux fois.
Sur la plupart des systèmes Linux, le paramètre ci-dessus est activé par défaut en utilisant l’alias suivant :
$ alias egrep='egrep –color=auto'
3. Comment trouver un motif dans plusieurs fichiers
La égrep La commande accepte plusieurs fichiers comme argument, ce qui nous permet de rechercher un modèle particulier dans plusieurs fichiers. Comprenons cela avec un exemple.
Tout d’abord, créez une copie du exemple.txt dossier:
$ cp sample.txt sample-copy.txt
Maintenant, recherchez le modèle professionals
dans les deux fichiers :
$ egrep professionals sample.txt sample-copy.txt
Dans l’exemple ci-dessus, nous pouvons voir le nom du fichier dans la sortie, qui représente la ligne correspondante de ce fichier.
4. Comment compter les lignes correspondantes dans le fichier
Parfois, nous avons juste besoin de savoir si le motif est présent ou non dans le fichier. Si oui, en combien de lignes est-il présent ? Dans de tels cas, nous pouvons utiliser le -c
option de la commande.
Par exemple, la commande ci-dessous affichera 1 comme sortie parce que le mot professionals
est présent sur une seule ligne.
$ egrep -c professionals sample.txt 1
5. Comment imprimer uniquement les lignes correspondantes dans le fichier
Dans l’exemple précédent, nous avons vu que le -c
L’option ne compte pas le nombre d’occurrences du modèle. Par exemple, le mot professionals
apparaît deux fois dans la même ligne mais le -c
l’option la traite comme une seule correspondance.
Dans de tels cas, nous pouvons utiliser le -o
option de la commande pour imprimer uniquement le motif correspondant. Par exemple, la commande ci-dessous affichera le mot professionals
sur deux lignes distinctes :
$ egrep -o professionals sample.txt
Maintenant, comptons les lignes en utilisant la commande wc :
$ egrep -o professionals sample.txt | wc -l
Dans l’exemple ci-dessus, nous avons utilisé la combinaison de égrep et toilettes commandes pour compter le nombre d’occurrences du modèle particulier.
6. Comment trouver un motif en ignorant la casse
Par défaut, égrep effectue une correspondance de modèle en respectant la casse. Cela signifie des mots – nous, nous, nous et nous sommes traités comme des mots différents. Cependant, nous pouvons appliquer la recherche insensible à la casse en utilisant le -i
option.
Par exemple, dans la commande ci-dessous, la correspondance de modèle réussira pour le texte we
et We
:
$ egrep -i we sample.txt
7. Comment exclure les modèles partiellement appariés
Dans l’exemple précédent, nous avons vu que le égrep La commande effectue une correspondance partielle. Par exemple, lorsque nous avons recherché le texte we
puis la correspondance de modèle a également réussi pour d’autres textes. Tels que le Web, le site Web et étaient.
Pour surmonter cette limitation, on peut -w
option, qui applique la correspondance du mot entier.
$ egrep -w we sample.txt
8. Comment inverser la correspondance de modèle dans le fichier
Jusqu’à présent, nous avons utilisé le égrep commande pour imprimer les lignes dans lesquelles le motif donné est présent. Cependant, parfois, nous voulons effectuer l’opération dans le sens inverse.
Par exemple, nous pouvons vouloir imprimer les lignes dans lesquelles le motif donné n’est pas présent. Nous pouvons y parvenir avec l’aide de -v
option:
$ egrep -v we sample.txt
Ici, nous pouvons voir que la commande imprime toute la ligne qui ne contient pas le texte we
.
9. Comment trouver le numéro de ligne du motif
Nous pouvons utiliser le -n
option de la commande pour activer la numérotation des lignes, qui affiche le numéro de ligne dans la sortie lorsque la correspondance de modèle réussit. Cette astuce simple rend la sortie plus significative.
$ egrep -n professionals sample.txt
Dans la sortie ci-dessus, nous pouvons voir que le mot professionals
est présent dans le 5ème ligne.
10. Comment effectuer une correspondance de modèle en mode silencieux
En mode silencieux, le égrep La commande n’imprime pas le modèle correspondant. Nous devons donc utiliser la valeur de retour de la commande pour identifier si la correspondance de modèle a réussi ou non.
Nous pouvons utiliser le -q
option de la commande pour activer le mode silencieux, ce qui est pratique lors de l’écriture de scripts shell.
$ egrep -q professionals sample.txt $ egrep -q non-existing-pattern sample.txt
Dans cet exemple, le zéro la valeur de retour indique la présence du motif tandis que la valeur non nulle indique l’absence du motif.
11. Comment afficher les lignes avant la correspondance de motif
Parfois, il est logique de montrer quelques lignes autour du motif correspondant. Pour de tels scénarios, nous pouvons utiliser le -B
option de la commande, qui affiche N lignes avant le motif correspondant.
Par exemple, la commande ci-dessous imprimera la ligne pour laquelle la correspondance de modèle réussit ainsi que 2 lignes avant.
$ egrep -B 2 -n professionals sample.txt
Dans cet exemple, nous avons utilisé le -n
possibilité d’afficher les numéros de ligne.
12. Comment afficher les lignes après la correspondance de motif
De la même manière, nous pouvons utiliser le -A
option de la commande pour afficher les lignes après la correspondance du modèle. Par exemple, la commande ci-dessous imprimera la ligne pour laquelle la correspondance de modèle réussit ainsi que les 2 lignes suivantes.
$ egrep -A 2 -n professionals sample.txt
13. Comment afficher les lignes autour de la correspondance de motif
En plus de cela, le égrep la commande prend en charge la -C
option qui combine la fonctionnalité des options -A
et -B
qui affiche les lignes avant et après le motif correspondant.
$ egrep -C 2 -n professionals sample.txt
14. Comment trouver un modèle dans plusieurs fichiers de manière récursive
Comme indiqué précédemment, nous pouvons effectuer une correspondance de modèles sur plusieurs fichiers. Cependant, la situation devient délicate lorsque des fichiers sont présents dans plusieurs sous-répertoires et que nous les passons tous comme arguments de commande.
Dans de tels cas, nous pouvons effectuer une correspondance de modèle de manière récursive en utilisant le -r
comme indiqué dans l’exemple suivant.
Tout d’abord, créez 2 sous-répertoires et copiez le exemple.txt déposez-y :
$ mkdir -p dir1/dir2 $ cp sample.txt dir1/ $ cp sample.txt dir1/dir2/
Effectuons maintenant l’opération de recherche de manière récursive :
$ egrep -r professionals dir1
Dans l’exemple ci-dessus, nous pouvons voir que la correspondance de modèle a réussi pour le dir1/dir2/exemple.txt et dir1/exemple.txt des dossiers.
15. Comment faire correspondre un seul caractère à l’aide d’expressions régulières
Nous pouvons utiliser un point (.)
caractère pour correspondre à n’importe quel caractère unique à l’exception de la fin de la ligne. Par exemple, l’expression régulière ci-dessous correspond au texte har, hat et has :
$ egrep "ha." sample.txt
16. Comment faire correspondre zéro ou plusieurs occurrences de caractère
Nous pouvons utiliser l’astérisque (*)
pour correspondre à zéro ou plusieurs occurrences du caractère précédent. Par exemple, l’expression régulière ci-dessous correspond à un texte contenant une chaîne we
suivi de zéro ou plusieurs occurrences du caractère b
.
$ egrep "web*" sample.txt
17. Comment faire correspondre une ou plusieurs occurrences du caractère précédent
Nous pouvons utiliser le plus (+)
pour correspondre à une ou plusieurs occurrences du caractère précédent. Par exemple, l’expression régulière ci-dessous correspond au texte qui contient la chaîne we
suivi d’au moins une occurrence du caractère b
.
$ egrep "web+" sample.txt
Ici, nous pouvons voir que le pattern matching ne réussit pas pour les mots – we
et were
en raison de l’absence du personnage b
.
18. Comment faire correspondre le début de la ligne
Nous pouvons utiliser le caret (^)
pour représenter le début de la ligne. Par exemple, l’expression régulière ci-dessous imprime les lignes commençant par le texte We
:
$ egrep "^We" sample.txt
19. Comment faire correspondre la fin de la ligne
Nous pouvons utiliser le dollar ($)
pour représenter la fin de la ligne. Par exemple, l’expression régulière ci-dessous imprime les lignes qui se terminent par le texte e.
:
$ egrep "e.$" sample.txt
20. Comment supprimer les lignes vides dans le fichier
Nous pouvons utiliser le caret (^)
immédiatement suivi du dollar ($)
pour représenter la ligne vide. Utilisons ceci dans une expression régulière pour supprimer les lignes vides :
$ egrep -n -v "^$" sample.txt
Dans la sortie ci-dessus, nous pouvons voir que les numéros de ligne 2, 4, 6, 8 et 10 ne sont pas affichés car ils sont vides.
Conclusion
Dans cet article, nous avons discuté de quelques exemples utiles de égrep commandes. On peut utiliser ces exemples dans la vie de tous les jours pour améliorer la productivité.
Connaissez-vous un autre meilleur exemple de la commande egrep sous Linux ? Faites-nous part de vos opinions dans les commentaires ci-dessous.