Comment utiliser la commande fgrep pour rechercher des chaînes dans Linux

Comment utiliser la commande fgrep pour rechercher des chaînes dans Linux

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.SMS 
Afficher 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.SMS 
Recherche 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.SMS 
Rechercher 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.SMS 
Dé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.SMS 
Rechercher 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.SMS 
Trouvez 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-1 
Exclure 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-1 
Exclure 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-1 
Inclure 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.