Recherche de site Web

Comment rechercher plusieurs chaînes, modèles ou mots ?


Introduction

Grep est l'un des outils de ligne de commande les plus puissants et les plus utilisés sur les systèmes Linux/Unix. Il signifie « Global Regular Expression Print » et est utilisé pour rechercher des fichiers texte ou pour afficher des commandes pour des modèles ou des chaînes spécifiques.

Il peut rechercher dans toute une structure de répertoires, filtrer les résultats et afficher uniquement les données pertinentes pour l'utilisateur. Grep est un outil polyvalent qui peut être utilisé pour de nombreuses tâches différentes, notamment l'administration système, la programmation et l'analyse des données.

Commandes Grep de base

Grep est un puissant outil de ligne de commande utilisé dans les systèmes d'exploitation basés sur Unix pour rechercher des modèles ou des chaînes de texte spécifiques dans des fichiers ou dans la sortie d'autres commandes. La syntaxe de base d'une simple commande grep est la suivante -

grep [options] pattern [file] 

Le "modèle" est la chaîne ou l'expression régulière que vous souhaitez rechercher, et l'argument "fichier" spécifie le nom du fichier dans lequel vous souhaitez rechercher.

Si aucun nom de fichier n'est donné, grep lira à partir de l'entrée standard (par exemple, la sortie d'une autre commande). L'une des options les plus couramment utilisées avec grep est "-i", ce qui rend la recherche insensible à la casse.

Exemples de recherche d'une seule chaîne ou d'un seul modèle

Pour rechercher une seule chaîne dans un fichier, utilisez la syntaxe de base suivante -

bash grep 'string' filename  

Par exemple, si vous souhaitez rechercher toutes les occurrences du mot « pomme » dans un fichier nommé « fruits.txt », vous utiliserez -

grep 'apple' fruits.txt 

Si vous souhaitez faire correspondre un modèle au lieu d'une chaîne exacte, vous pouvez utiliser des expressions régulières avec grep.

Par exemple, si vous souhaitez rechercher tous les mots commençant par "a" suivi d'un caractère puis se terminant par "le", vous pouvez utiliser -

grep 'a.*le' fruits.txt 

Cela correspondra à des mots comme « pomme », « capable » et « avocat ».

Comprendre les commandes Grep de base telles que la syntaxe et les options est essentiel avant de rechercher plusieurs chaînes ou modèles. La recherche de chaînes uniques nécessite l'utilisation de guillemets autour de la chaîne souhaitée, tandis que la recherche de modèles nécessite l'utilisation d'expressions régulières.

Recherche de plusieurs chaînes ou modèles

Grep est un outil incroyablement puissant qui peut être utilisé pour rechercher plusieurs chaînes ou modèles dans un fichier ou un répertoire donné. Par défaut, Grep recherchera la première occurrence du modèle donné dans le fichier, mais que se passe-t-il si nous voulons trouver plusieurs occurrences de modèles différents à la fois ?

C'est là que l'opérateur OR (|) est utile. L'opérateur OR nous permet de rechercher plusieurs chaînes ou modèles simultanément.

Pour utiliser cette option, répertoriez simplement chaque chaîne ou motif séparé par le symbole OU. Par exemple, disons que nous souhaitons rechercher toutes les occurrences de « pomme » ou de « banane » dans un fichier appelé « fruits.txt ».

Nous utiliserions la commande suivante -

grep 'apple|banana' fruits.txt  

Cette commande renverra toutes les lignes contenant « pomme » ou « banane ». Il est important de noter que lors de l'utilisation de l'opérateur OR, chaque chaîne ou modèle doit être entouré de son propre ensemble de guillemets.

L'opérateur OR peut également être combiné avec d'autres options Grep telles que -i (insensible à la casse), -v (correspondance inversée) et -r (récursif). Par exemple, disons que nous souhaitons rechercher toutes les lignes contenant « pomme », « banane » ou « cerise » dans n'importe quel fichier d'un répertoire appelé « fruits_folder ».

Nous utiliserions la commande suivante -

grep -ir 'apple|banana|cherry' fruits_folder/ 

Rechercher des mots dans un contexte spécifique

Grep peut être utilisé pour rechercher des mots ou des modèles spécifiques dans un certain contexte. Ceci est particulièrement utile lorsque vous avez besoin de rechercher des informations liées à un sujet particulier et que vous souhaitez voir une partie du texte environnant pour obtenir plus de contexte. Les options de contexte dans Grep vous permettent de spécifier combien de lignes de contexte doivent être affichées avant et/ou après chaque correspondance.

Explication de la façon d'utiliser Grep avec les options contextuelles (-A, -B, -C)

Il existe trois options de contexte différentes dans Grep -

  • -A - affiche le nombre de lignes spécifié après chaque correspondance

  • -B - affiche le nombre de lignes spécifié avant chaque correspondance

  • -C −affiche le nombre spécifié de lignes avant et après chaque correspondance. Vous pouvez utiliser n'importe quelle combinaison de ces options en fonction du type de contexte dont vous avez besoin.

Recherche de correspondances exactes uniquement

Vous êtes-vous déjà senti frustré lorsque vous essayez de rechercher un mot ou une expression exacte à l'aide de Grep, mais que les résultats de la recherche aboutissent également à un certain nombre de correspondances partielles ? Cela peut être particulièrement courant lors de la recherche dans des fichiers volumineux contenant beaucoup de texte. Heureusement, il existe une option dans Grep qui vous permet de rechercher uniquement des correspondances exactes : l'option de limite de mot.

L'option de limite de mots expliquée

L'option de limite de mot (\b) est un caractère spécial qui indique à Grep de ne faire correspondre que les mots ayant à la fois un début et une fin. Cela permet de garantir que vos résultats de recherche n'incluent aucune correspondance partielle (par exemple, si vous recherchez "chat", il ne renverra pas de résultats tels que "chenille" ou "dispersé"). Le caractère \b est généralement utilisé en combinaison avec d’autres termes de recherche pour créer une recherche plus raffinée.

Pour affiner votre recherche afin d'inclure uniquement les instances exactes du mot "pomme", ajoutez le caractère \b avant et après le mot -

grep '\bapple\b' file.txt 

Cela renverra uniquement les lignes dans lesquelles l'expression exacte « pomme » apparaît.

Exemples de recherches de correspondance exacte à l'aide de l'option de limite de mots

Voici quelques exemples de la façon dont vous pouvez utiliser l'option de limite de mot dans la pratique : - Pour rechercher toutes les occurrences de "livre" et "livres", mais pas d'autres mots contenant ces lettres -

grep '\bbook\b' file.txt
  • Pour trouver toutes les occurrences de "cat" et "cats", mais pas d'autres mots contenant ces lettres - grep '\bcat\b' file.txt- Pour trouver toutes les occurrences de l'expression exacte "analyse de données":

grep '\bdata analysis\b' file.txt

L'utilisation de l'option de limite de mots peut améliorer considérablement la précision et la pertinence de vos recherches Grep. Expérimentez avec différentes combinaisons de termes de recherche et affinez vos résultats jusqu'à ce que vous trouviez exactement ce que vous recherchez.

Recherche à l'aide d'expressions régulières

Les expressions régulières sont un ensemble de caractères utilisés pour définir des modèles de recherche. Ils permettent des recherches plus complexes et spécifiques que la simple correspondance de chaînes ou de modèles.

Les expressions régulières offrent un moyen flexible de rechercher du texte dans des fichiers et peuvent être utilisées pour extraire des informations à partir de grands ensembles de données. Grep prend en charge les expressions régulières, ce qui en fait un excellent outil pour effectuer des recherches complexes.

Explication des expressions régulières et de leurs utilisations dans les recherches Grep

Les expressions régulières sont constituées de divers caractères qui ont des significations particulières lorsqu'elles sont utilisées avec Grep. Par exemple, le caractère point (.) correspond à n'importe quel caractère, tandis que l'astérisque (*) correspond à zéro ou plusieurs occurrences du caractère précédent. Le caractère barre verticale (|) est utilisé pour séparer plusieurs modèles de recherche, tandis que les crochets ([]) sont utilisés pour créer un jeu de caractères qui correspond à l'un des caractères inclus.

Une fonctionnalité puissante des expressions régulières est la possibilité d’utiliser des groupes et des références arrière. Les groupes sont créés en mettant une partie de l'expression entre parenthèses().

Conclusion

Grep est un outil puissant qui permet aux utilisateurs de rechercher plusieurs chaînes, modèles ou mots dans un fichier donné. En maîtrisant les commandes de base et la syntaxe de Grep, les utilisateurs peuvent facilement rechercher des instances individuelles d'une chaîne ou d'un modèle. Cependant, le véritable pouvoir de Grep réside dans sa capacité à rechercher plusieurs chaînes ou modèles à la fois.

En utilisant l'opérateur OU (|), les utilisateurs peuvent étendre leurs recherches pour inclure de nombreuses possibilités différentes à la fois. De plus, en utilisant les options contextuelles (-A, -B, -C), les utilisateurs peuvent rechercher des mots spécifiques dans un contexte plus large.

Articles connexes: