Syntaxe
$ grep 'pattern1\|pattern2' nom de fichierUne 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.SMSLa 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.SMSIl 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.SMSIci -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.