Comment utiliser la commande fgrep pour rechercher des chaînes dans Linux
- 1579
- 104
- Jeanne Dupont
Brief: Dans ce guide pour les débutants, nous discuterons de quelques exemples pratiques de la commande FGREP. À la fin de ce guide, les utilisateurs pourront effectuer efficacement les opérations de recherche de texte à l'aide de l'interface de ligne de commande.
La recherche de texte est l'une des opérations les plus couramment effectuées. Cependant, cette tâche simple devient rapidement du temps si les utilisateurs ne connaissent pas les bons outils. Dans Linux, il existe divers utilitaires de filtrage de texte tels que AWK, SED, couper, etc.
Cependant, dans Linux, fgrep est l'utilité la plus préférée pour la recherche de texte simple. Dans ce guide, nous allons discuter de quelques exemples de pratique fgrep commande qui peut être utilisée dans la vie quotidienne.
Le fgrep Commande dans Linux tombe sous la famille de la commande Grep. Cependant, il est utilisé pour rechercher le modèle de chaîne fixe au lieu d'expressions régulières. Par conséquent, le nom de la commande est fgrep (Grep fixe).
La syntaxe du fgrep La commande est similaire aux autres commandes de la famille Grep:
$ fgrep [options] modèles [fichiers]
Pour commencer, créons un fichier texte brut avec le contenu suivant pour utiliser un exemple:
$ Cat Entrée.SMSAfficher le contenu du fichier dans Linux
Ici, nous pouvons voir que le fichier texte est prêt avec l'exemple de contenu. Discutons maintenant de quelques exemples courants du fgrep Commande dans les prochains exemples.
1. Comment Fgrep est différent des commandes Grep et Egrep?
Comme son nom l'indique, le fgrep La commande est utilisée pour rechercher les motifs de chaîne fixe. Il interprète le motif en tant que chaîne fixe au lieu d'une expression régulière. Par conséquent, il effectue l'opération de recherche d'une manière économe en temps.
Pour comprendre la différence, utilisons un point (.)
caractère avec la commande grep.
Cette expression régulière simple correspond à n'importe quel caractère unique à l'exception de la fin de la ligne:
$ grep ha. saisir.SMSRecherche de caractère unique avec grep
Dans la sortie ci-dessus, nous pouvons voir que le point (.)
Le caractère correspondait au texte har, chapeau, et a.
Maintenant, utilisons le même motif avec le fgrep commander et observer le résultat:
$ fgrep ha. saisir.SMS
Dans la sortie ci-dessus, nous pouvons voir que la commande ne trouve pas le modèle donné.
Cela se produit parce que le fgrep La commande ne reconnaît pas les expressions régulières et essaie de rechercher le modèle inexistant - "Ha."
.
[Vous pourriez également aimer: quelle est la différence entre Grep, Egrep et Fgrep dans Linux? ]]
2. Comment rechercher un modèle dans un fichier
Commençons par l'exemple de base où nous rechercherons un professionnel de la chaîne dans un saisir.SMS déposer:
$ FGREP Professionals Entrée.SMSRechercher un modèle dans le fichier
Comme nous pouvons le voir, la correspondance du motif réussit à deux endroits et il est mis en évidence en couleur rouge.
3. Comment définir la couleur de sortie Grep pour les motifs correspondants
Dans l'exemple précédent, nous avons vu que, par défaut, le motif apparié est mis en évidence en couleur rouge. Cependant, nous pouvons modifier ce comportement en attribuant une valeur différente Grep_color
Variables d'environnement.
Attribuons la valeur 32 au Grep_color
Variable d'environnement pour mettre en évidence le motif correspondant en couleur verte:
$ export grep_color = 32 $ fgrep professionnels entrée.SMSDéfinir la couleur de sortie Grep pour les motifs de correspondance
Maintenant, avant de passer à l'exemple suivant, non pas le Grep_color Variable d'environnement pour activer le comportement par défaut:
$ unset grep_color
4. Comment rechercher plusieurs modèles dans un fichier
Parfois, nous devons effectuer une correspondance de motifs pour plusieurs chaînes. Dans de tels cas, nous pouvons fournir les modèles du fichier texte au lieu de l'argument de la ligne de commande.
Créons un fichier texte qui contient plusieurs modèles sur une ligne distincte:
Modèle de chat $.SMS site Web de professionnels
Maintenant, utilisons ce fichier avec le -F
Option pour la correspondance de motifs multiples:
$ fgrep -f motif.Entrée TXT.SMSRechercher plusieurs modèles avec FGREP
Dans la sortie ci-dessus, nous pouvons voir que la correspondance du modèle réussit pour les chaînes professionnels et site Internet.
5. Comment limiter le nombre de correspondances dans un fichier
Par défaut, le fgrep La commande continue d'effectuer la correspondance du modèle jusqu'à ce que le fichier entier soit traité.
Cependant, nous devons parfois limiter le nombre de matchs. Dans de tels cas, nous pouvons utiliser le -m
Option avec la commande:
$ fgrep -m 1 professionnels entrée.TXT Tecmint a été lancé le 15 août 2012 par technique professionnels Et tous les
Dans cet exemple, le fgrep La commande arrête le traitement du fichier après la correspondance du premier modèle.
6. Comment imprimer le nom du fichier lors de la recherche de modèle
Parfois, nous avons juste besoin de trouver le nom des fichiers dans lesquels un modèle particulier est présent. Dans de tels cas, nous pouvons utiliser le -l
option du fgrep commande:
$ fgrep -L Professionals Entrée.SMS saisir.SMS
Ici, nous pouvons voir que la commande imprime simplement le nom de fichier au lieu des lignes avec les motifs correspondants.
7. Comment imprimer le nom du fichier lorsque la correspondance du modèle échoue
Dans l'exemple précédent, nous avons vu comment imprimer le nom du fichier lorsque la correspondance du modèle réussit. Maintenant, voyons comment effectuer l'opération de manière inverse.
Essayons de trouver le modèle inexistant dans le fichier et d'observer le résultat:
$ fgrep -l entrée non existante.SMS saisir.SMS
Dans cet exemple, nous avons utilisé le -L
Option de la commande qui imprime le nom du fichier lorsque la correspondance du modèle ne réussit pas.
8. Comment supprimer les messages d'erreur
La gestion des erreurs joue un rôle crucial lors de l'écriture de scripts shell. Cependant, dans certains scénarios non critiques, nous pouvons ignorer en toute sécurité les messages d'erreur.
Dans fgrep, Nous pouvons utiliser le -s
Option qui supprime les erreurs liées aux fichiers inexistants ou illisibles. Pour mieux comprendre ce comportement, essayons de rechercher un modèle dans le fichier inexistant:
$ fgrep -s professionnels non existants-fichier.txt $ echo $? 2
Dans la sortie ci-dessus, nous pouvons voir que la commande n'affiche aucune erreur sur le flux d'erreur standard. Cependant, l'échec est rapporté par la valeur de retour non nulle.
En plus de cela, nous pouvons également observer le même comportement lorsque le fichier est illisible. Donc, d'abord, modifiez l'autorisation du fichier à l'aide du chod commande:
Entrée $ chmod 000.Entrée txt $ ls -l.SMS
Maintenant, essayez de rechercher le modèle et observez le résultat:
$ FGREP -S Professionals.txt $ echo $?Grep ignore les messages d'erreur
9. Comment exclure les lignes partiellement appariées
Dans les exemples précédents, nous avons vu que le fgrep La commande effectue une correspondance partielle. Cependant, dans certains cas, nous devons effectuer la correspondance exacte de la ligne entière. Dans de tels cas, nous pouvons utiliser le -X
option du fgrep commande.
$ fgrep -nx "Le même site est parfois difficile à trouver." saisir.SMSTrouvez la correspondance exacte dans le fichier
Dans la sortie ci-dessus, la correspondance de ligne exacte se produit à la ligne numéro 20.
dix. Comment exclure les fichiers lors de la recherche récursive
Parfois, nous devons sauter certains fichiers tout en effectuant des opérations de recherche. Dans de tels cas, nous pouvons utiliser le --exclure
option du fgrep commande.
Pour comprendre cela, créez d'abord un répertoire et copiez quelques exemples de fichiers:
$ mkdir dir-1 $ cp entrée.txt dir-1 / entrée.Entrée txt $ cp.txt dir-1 / entrée.Données $ CP Entrée.txt dir-1 / entrée.Maryland
Maintenant, recherchons le modèle dans tous les fichiers du dir-1 répertoire sauf le ".SMS"
des dossiers:
$ fgrep -r --exclude *.Txt Professionals Dir-1Exclure les fichiers lors de la recherche de modèle
Dans la sortie ci-dessus, nous pouvons voir que la correspondance de modèles a été effectuée sur les fichiers avec ".Maryland"
et ".données"
extensions.
11. Comment exclure plusieurs types de fichiers lors de la recherche récursive
Dans l'exemple précédent, nous avons vu comment exclure des fichiers avec des extensions particulières. Cependant, la commande devient longue lorsque nous voulons exclure des fichiers avec plusieurs extensions. Dans de tels cas, nous pouvons fournir le modèle d'exclusion du fichier au lieu de l'argument de la ligne de commande:
Créons donc un fichier texte qui contient plusieurs modèles d'exclusion sur une ligne distincte:
$ Cat Skip-Pattern.SMS *.SMS *.données
Maintenant, utilisons ce fichier avec le --exclure de
option:
$ fgrep -r --exclude-from skip-poatn.Txt Professionals Dir-1Exclure plusieurs types de fichiers lors de la recherche du modèle
Ici, nous pouvons voir que la correspondance de modèles a été effectuée sur les fichiers avec ".Maryland"
Extensions seulement.
12. Comment inclure des fichiers lors de la recherche de récursivement
Dans les exemples précédents, nous avons vu comment exclure les fichiers tout en effectuant des opérations de recherche récursivement. Maintenant, voyons comment effectuer l'opération de manière inverse.
Utilisons le --inclure
option du fgrep commande pour effectuer une recherche sur les fichiers avec le "*.SMS"
extension:
$ fgrep -r --include "*.txt "Professionals dir-1Inclure des fichiers lors de la recherche de modèle
Dans la sortie ci-dessus, nous pouvons voir que la correspondance du modèle est ignorée pour les fichiers avec "*.Maryland"
et "*.données"
extensions.
Dans cet article, nous avons discuté de quelques exemples utiles du fgrep commande. Les débutants peuvent utiliser ces exemples dans la vie quotidienne pour améliorer la productivité tout en travaillant avec Linux.
Connaissez-vous tout autre meilleur exemple de la commande fgrep dans Linux? Faites-nous savoir votre point de vue dans les commentaires ci-dessous.
- « Comment déployer uniquement les documents de bureau sur Angular
- Comment installer Viber sur Linux Desktop »