grep

Grep pour plusieurs modèles ou chaînes

Grep pour plusieurs modèles ou chaînes
Global Regular Expression Print ou Grep est un utilitaire puissant utilisé dans le système d'exploitation Linux. Grâce à grep, vous pouvez rechercher à partir de fichiers avec différents modèles ou chaînes en appliquant des limitations. La fonction Grep prend un ou plusieurs fichiers d'entrée pour rechercher dans des répertoires ou des sous-répertoires. Pour rechercher de nombreux modèles, nous utilisons l'opérateur OR. Cet opérateur est utilisé pour séparer les motifs écrits dans la commande. L'opérateur de modification « | » est utilisé avec la barre oblique inverse. La syntaxe pour rechercher différentes expressions régulières est la suivante :

Syntaxe

$ grep 'pattern1\|pattern2' nom de fichier

Une expression régulière est toujours écrite entre guillemets simples. Deux noms sont séparés par une barre oblique inverse et un opérateur de modification. La commande se termine par le nom de fichier. Lors de l'exécution de grep récursif, le répertoire ou le chemin complet est utilisé au lieu d'un seul nom de fichier.

Prérequis

Dans cet article, nous allons apprendre la fonctionnalité de grep dans la recherche de plusieurs modèles et chaînes. Pour cela, vous devez avoir le système d'exploitation Linux en cours d'exécution sur votre boîte virtuelle. Vous devez l'installer sur votre système. Après configuration, vous aurez accès à toutes les applications. Après vous être connecté à l'utilisateur en fournissant un mot de passe, accédez à la ligne de commande du terminal shell pour continuer.

Rechercher par plusieurs modèles dans un fichier à l'aide de Grep

Si nous voulons rechercher plusieurs modèles ou chaînes dans un fichier particulier, utilisez la fonctionnalité grep pour trier dans un fichier à l'aide de plusieurs mots d'entrée dans la commande. Nous utilisons '\|' opérateurs pour la séparation de deux motifs dans une commande.

$ grep 'technical\|job' filea.SMS

La commande représente le fonctionnement de grep. Les deux fichiers mentionnés seront recherchés dans filea.SMS. Les mots recherchés sont mis en évidence dans tout le texte de la sortie.

Pour rechercher plus de deux mots, nous continuerons à les ajouter de la même manière.

$ grep 'graphic\|photoshop\|posters' fileb.SMS

Rechercher plusieurs chaînes en ignorant la casse

Pour comprendre le concept de sensibilité à la casse dans la fonction grep sous Linux, considérons l'exemple suivant. Deux commandes fonctionnent sur grep. L'un est avec '-i' et l'autre est sans. Cet exemple montre les différences entre les commandes. La première montre que deux mots seront recherchés dans un fichier donné. Cependant, comme indiqué dans la commande « Aqsa », il commence par un majuscule A. Ainsi, il ne sera pas mis en évidence car, dans un fichier particulier, ce texte est en minuscule.

$ grep 'Aqsa\|soeur' fichier20.SMS

Il ne considérera que le mot soeur, qui sera vu dans la sortie.

Dans le deuxième exemple, nous avons ignoré la sensibilité à la casse en utilisant le drapeau "-I". Cette fonction recherchera les deux mots et la sortie sera mise en surbrillance. Que le mot « Aqsa » soit écrit en majuscules ou non, grep recherchera la même correspondance dans le texte d'un fichier. Ainsi, les deux commandes sont utiles à leur manière.

$ grep -I 'Aqsa\|soeur' fichier20.SMS

Compter plusieurs correspondances dans un fichier

La fonction de comptage aide à compter l'occurrence d'un ou de plusieurs mots dans un fichier particulier. Par exemple, si vous voulez connaître les erreurs qui se produisent dans le système. Le détail est enregistré dans le fichier de logs. Pour conserver ces informations dans un dossier spécifique, vous allez écrire le chemin des dossiers. Cet exemple montre que 71 erreurs se sont produites dans les fichiers journaux.

Rechercher des correspondances exactes dans un fichier

Si vous voulez trouver une correspondance exacte dans les fichiers de votre système, vous devez utiliser le drapeau "-w" pour la trier avec précision. Nous avons cité un exemple simple et complet. Dans l'exemple ci-dessous, envisagez de rechercher sans "-w", cette commande apportera les deux mots correspondant à l'entrée donnée. Mais avec l'utilisation du drapeau "-w", la recherche sera limitée car les mots d'entrée ne correspondent qu'à la première chaîne. Le deuxième mot n'est pas mis en évidence car "-w" permet une correspondance précise avec le modèle.

$ -iw 'hamna\|maison' fichier21.SMS

Ici -I est également utilisé pour supprimer la sensibilité à la casse dans la recherche de texte.

Comme on le voit sur la photo, les résultats ne sont pas les mêmes. La première commande apporte toutes les données associées avec des chaînes entières, tandis que la deuxième commande montre comment les données exactes correspondent via grep lors de la recherche de plusieurs chaînes.

Grep pour plus d'un modèle dans un type d'extension de fichier spécifique

La recherche est effectuée dans tous les fichiers. C'est à vous de décider si vous effectuez une recherche en fournissant le nom de fichier Il ne cherchera que dans des fichiers spécifiques. Mais en fournissant une extension de fichier, les données seront recherchées dans tous les fichiers de la même extension. Il existe deux exemples différents pour décrire le résultat associé. En considérant le premier exemple, les fichiers d'erreurs seront comptés dans tous les fichiers du .extension de journal. "-c" est utilisé pour compter.

$ grep -c 'avertissement\|erreur' /var/log/*.Journal

Cette commande implique que les fichiers seront recherchés dans tous les fichiers du .extension de journal. Le nombre de correspondances sera affiché dans la sortie pour mieux démontrer grep avec l'extension de fichier spécifique.

Dans le deuxième exemple, nous avons utilisé deux mots dans nos fichiers sous Linux avec l'extension du texte. Toutes les données seront affichées sous forme de nombres. 0 indique qu'il n'y a pas de données correspondantes, alors qu'un autre que 0 indique qu'une correspondance existe.

$ grep -c 'aqsa\|mon' /home/aqsayasin/*.SMS

Recherche de plusieurs modèles de manière récursive dans un fichier

Par défaut, le répertoire courant est utilisé s'il n'y a pas de répertoire mentionné dans la commande. Si vous souhaitez effectuer une recherche dans le répertoire de votre choix, vous devez le mentionner. L'opérateur "-r" est utilisé pour grep de manière récursive./home/aqsayasin/ montre le chemin des fichiers, alors que *.txt montre l'extension. Les fichiers texte seront la cible de la recherche récursive de grep.

$ grep -R 'technique\|gratuit' /home/aqsayasin/*.SMS

La sortie souhaitée est mise en évidence dans le résultat montrant l'existence de ces mots.

Conclusion

Dans l'article mentionné ci-dessus, nous avons cité différents exemples pour permettre à un utilisateur de comprendre plus facilement le fonctionnement des commandes pour rechercher plusieurs modèles sous Linux. Ce guide vous aidera à approfondir vos connaissances existantes.

Trackpad et pointeur de souris à l'écran AppyMouse pour tablettes Windows
Les utilisateurs de tablettes ratent souvent le pointeur de la souris, surtout lorsqu'ils ont l'habitude d'utiliser les ordinateurs portables. Les sma...
Le bouton central de la souris ne fonctionne pas sous Windows 10
le bouton central de la souris vous aide à faire défiler de longues pages Web et des écrans contenant beaucoup de données. Si cela s'arrête, et bien v...
Comment changer les boutons gauche et droit de la souris sur un PC Windows 10
Il est tout à fait normal que tous les appareils de souris d'ordinateur soient conçus de manière ergonomique pour les droitiers. Mais il existe des so...