20 exemples de commande Linux Egrep
- 2549
- 176
- Thomas Richard
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.SMSExemple 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.SMSRecherche 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.SMSMettre 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.SMSRechercher 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 -lImprimer 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.SMSRecherche 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.SMSImprimer 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.SMSCorrespondant à 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.SMSNombre 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.SMSCorrespondance 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.SMSImprimer 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.SMSLes 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.SMSImprimer 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 dir1Rechercher 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.SMSFaire 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.SMSCorrespondre à 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.SMSFaire 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.SMSImprimer 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.SMSImprimer 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.SMSSupprimer 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.
- « Erreur interdite - vous n'avez pas l'autorisation d'accès / sur ce serveur
- Comment installer et configurer le pare-feu OPNSense de base »