20 exemples de commande Linux Egrep

20 exemples de commande Linux Egrep

Brief: Dans ce guide, nous discuterons de certains des exemples pratiques de la commande Egrep. Après avoir suivi ce guide, les utilisateurs pourront effectuer une recherche de texte plus efficacement dans Linux.

Avez-vous déjà été frustré parce que vous ne pouvez pas trouver les informations requises dans les journaux? L'extraction des informations requises d'un grand ensemble de données est une tâche complexe et longue.

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, couper, etc.

Cependant, Egrep est l'un des utilitaires les plus puissants et couramment utilisés pour le traitement de texte dans Linux, et nous allons discuter de quelques exemples de la faire un coup de pouce commande.

Le faire un coup de pouce La commande dans Linux est reconnue par la famille de la commande grep, qui est utilisée pour la recherche et la correspondance d'un modèle particulier dans les fichiers. Il fonctionne de manière similaire à grep -e (Grep Extended Regex), mais il recherche principalement un fichier particulier ou même des lignes pour tapisser ou imprimer la ligne dans le fichier donné.

La syntaxe du faire un coup de pouce La commande est la suivante:

$ Egrep [Options] Modèles [fichiers] 

Créons un exemple de fichier texte avec le contenu suivant pour utiliser un exemple:

$ échantillon de chat.SMS 
Exemple de fichier texte

Ici, nous pouvons voir que le fichier texte est prêt. Discutons maintenant de quelques exemples courants qui peuvent être utilisés quotidiennement.

1. Comment trouver un modèle dans un seul fichier

Commençons par un exemple de correspondance de motifs simples, où nous pouvons utiliser la commande ci-dessous pour rechercher une chaîne professionnel dans un goûter.SMS déposer:

$ Egrep Professionals échantillon.SMS 
Recherche de chaîne dans le fichier

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 évidence le modèle correspondant. Pour y parvenir, nous pouvons utiliser le --couleur option du faire un coup de pouce commande. Par exemple, la commande ci-dessous mettra en surbrillance le texte professionnels en couleur rouge:

$ Egrep --Color = Auto Professionals Sample.SMS 
Mettre en surbrillance le texte dans le fichier

Ici, nous pouvons voir que la même sortie est plus informative par rapport à la précédente. De plus, nous pouvons facilement identifier que le mot professionnels 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 les alias suivants:

$ alias egrep = "egrep -color = auto" 

3. Comment trouver un modèle dans plusieurs fichiers

Le faire un coup de pouce La commande accepte plusieurs fichiers comme un argument, ce qui nous permet de rechercher un modèle particulier dans plusieurs fichiers. Comprenons cela avec un exemple.

Créez d'abord une copie du goûter.SMS déposer:

$ CP Échantillon.txt échantillon.SMS 

Maintenant, recherchez le modèle professionnels Dans les deux fichiers:

$ Egrep Professionals échantillon.txt échantillon.SMS 
Rechercher une chaîne dans plusieurs fichiers

Dans l'exemple ci-dessus, nous pouvons voir le nom de fichier dans la sortie, qui représente la ligne correspondante à partir de ce fichier.

4. Comment compter les lignes correspondantes dans le fichier

Parfois, nous devons simplement savoir si le modèle est présent ou non dans le fichier. Si oui, alors dans le nombre de lignes qu'elle présente? Dans de tels cas, nous pouvons utiliser le -c Option de la commande.

Par exemple, la commande ci-dessous s'affichera 1 comme sortie parce que le mot professionnels est présent dans une seule ligne.

$ Egrep -C Professionals échantillon.SMS 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 motif. Par exemple, le mot professionnels apparaît deux fois dans la même ligne mais le -c L'option le traite comme un seul match uniquement.

Dans de tels cas, nous pouvons utiliser le -o Option de la commande pour imprimer le motif correspondant uniquement. Par exemple, la commande ci-dessous affichera le mot professionnels Sur deux lignes distinctes:

$ egrep -o échantillon de professionnels.SMS 

Maintenant, comptons les lignes en utilisant la commande wc:

$ egrep -o échantillon de professionnels.txt | wc -l 
Imprimer les lignes correspondantes dans le fichier

Dans l'exemple ci-dessus, nous avons utilisé la combinaison de faire un coup de pouce et toilettes commandes pour compter le nombre d'occurrences du modèle particulier.

6. Comment trouver un modèle en ignorant le cas

Par défaut, faire un coup de pouce Effectue la correspondance de motifs de manière sensible au cas. 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 -je option.

Par exemple, dans le modèle de commande ci-dessous, la correspondance réussira pour le texte nous et Nous:

$ egrep -i nous échantillons.SMS 
Recherche de la chaîne insensible au boîtier

7. Comment exclure les modèles partiellement appariés

Dans l'exemple précédent, nous avons vu que le faire un coup de pouce La commande effectue une correspondance partielle. Par exemple, lorsque nous avons recherché le texte nous puis la correspondance de motifs a également réussi à d'autres textes. Comme le web, le site Web et étaient.

Pour surmonter cette limitation, nous pouvons le -w option, qui applique tout le mot correspondant.

$ egrep -w nous échantillons.SMS 
Imprimer uniquement les modèles correspondants dans le fichier

8. Comment inverser la correspondance des modèles dans le fichier

Jusqu'à présent, nous avons utilisé le faire un coup de pouce commande pour imprimer les lignes dans lesquelles le motif donné est présent. Cependant, parfois nous voulons effectuer l'opération de manière opposée.

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 du -V option:

$ egrep -v nous échantillons.SMS 
Correspondant à l'inverse du modèle dans le fichier

Ici, nous pouvons voir que la commande imprime toute la ligne qui ne contient pas le texte nous.

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 du modèle réussit. Cette simple astuce rend la sortie plus significative.

$ Egrep -N Professionals échantillon.SMS 
Nombre de lignes d'impression de motif correspondant

Dans la sortie ci-dessus, nous pouvons voir que le mot professionnels est présent dans le 5e doubler.

dix. Comment effectuer la correspondance de motifs en mode calme

En mode calme, le faire un coup de pouce La commande n'imprime pas le motif correspondant. Nous devons donc utiliser la valeur de retour de la commande pour identifier si la correspondance des modèles a réussi ou non.

Nous pouvons utiliser le -q Option de la commande pour activer le mode silencieux, qui est utile lors de l'écriture de scripts shell.

$ Egrep -Q Professionals échantillon.txt $ egrep -q échantillon de motif non existant.SMS 
Correspondance de modèle de recherche en mode calme

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 du motif

Parfois, il est logique de montrer quelques lignes autour du motif assorti. Pour de tels scénarios, nous pouvons utiliser le -B Option de la commande, qui affiche N lignes avant le motif apparié.

Par exemple, la commande ci-dessous imprimera la ligne pour laquelle la correspondance du modèle réussit ainsi que 2 lignes avant elle.

$ Egrep -B 2 -N Professionals échantillon.SMS 
Imprimer les lignes avant la correspondance du motif

Dans cet exemple, nous avons utilisé le -n Option pour afficher les numéros de ligne.

12. Comment afficher les lignes après la correspondance du motif

De la même manière, nous pouvons utiliser le -UN 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 du modèle réussit ainsi que les 2 prochaines lignes.

$ Egrep -a 2 -N Professionals échantillon.SMS 
Les lignes d'impression après la correspondance du motif

13. Comment afficher les lignes autour de la correspondance du motif

En plus de cela, le faire un coup de pouce La commande prend en charge le -C Option qui combine la fonctionnalité des options -UN et -B, qui affiche les lignes avant et après le motif correspondant.

$ Egrep -C 2 -N Professionals échantillon.SMS 
Imprimer les lignes autour de la correspondance du motif

14. Comment trouver un modèle dans plusieurs fichiers récursivement

Comme discuté précédemment, nous pouvons effectuer une correspondance de modèles sur plusieurs fichiers. Cependant, la situation devient difficile lorsque les fichiers sont présents dans plusieurs sous-répertoires et nous les passons tous comme arguments de commandement.

Dans de tels cas, nous pouvons effectuer une correspondance de motifs de manière récursive en utilisant le -r option comme indiqué dans l'exemple suivant.

Tout d'abord, créez 2 sous-répertoires et copiez le goûter.SMS déposer en eux:

$ mkdir -p dir1 / dir2 $ cp échantillon.Échantillon TXT DIR1 / $ CP.txt dir1 / dir2 / 

Maintenant, effectuons l'opération de recherche de manière récursive:

$ egrep -r professionnels dir1 
Rechercher la chaîne de manière récursive dans les fichiers

Dans l'exemple ci-dessus, nous pouvons voir que la correspondance du modèle a réussi à dir1 / dir2 / échantillon.SMS et dir1 / échantillon.SMS des dossiers.

15. Comment faire correspondre un seul caractère en utilisant des expressions régulières

Nous pouvons utiliser un point (.) personnage pour correspondre à un seul caractère à l'exception de la fin de la ligne. Par exemple, l'expression régulière ci-dessous correspond au texte har, chapeau et a:

$ egrep "ha." goûter.SMS 
Faire correspondre un seul caractère dans un fichier

16. Comment faire correspondre zéro ou plus d'occurrences de caractère

Nous pouvons utiliser l'astérisque (*) Pour correspondre à zéro ou plus d'occurrences du personnage précédent. Par exemple, l'expression régulière ci-dessous correspond au texte qui contient une chaîne nous suivi de zéro ou plus d'occurrences du caractère b.

$ egrep "web *" échantillon.SMS 
Correspondre à la chaîne dans le fichier texte

17. Comment faire correspondre une ou plusieurs occurrences du personnage précédent

Nous pouvons utiliser le plus (+) Pour correspondre à une ou plusieurs occurrences du personnage précédent. Par exemple, l'expression régulière ci-dessous correspond au texte qui contient la chaîne nous suivi par au moins une occurrence du caractère b.

$ egrep "web +" échantillon.SMS 
Faire correspondre la chaîne par caractère dans le fichier

Ici, nous pouvons voir que la correspondance des modèles ne réussit pas pour les mots - nous et étaient, absence du caractère 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 qui commencent par le texte Nous:

$ egrep "^ we" échantillon.SMS 
Imprimer le texte correspondant à la ligne de démarrage

19. Comment 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 avec le texte e.:

$ egrep "e.$ "échantillon.SMS 
Imprimer du texte avec ligne d'extrémité

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 "^ $" échantillon.SMS 
Supprimer les lignes vides dans le fichier

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 du faire un coup de pouce commandes. On peut utiliser ces exemples dans la vie quotidienne pour améliorer la productivité.

Connaissez-vous tout autre meilleur exemple de la commande egrep dans Linux? Faites-nous savoir votre point de vue dans les commentaires ci-dessous.