Comment utiliser la commande Grep sous Linux

Comprendre la commande grep avec des exemples pratiques pour filtrer et afficher facilement le contenu du fichier

GREPsignifie 'Global Regular Expression Print'. C'est un utilitaire de ligne de commande utile fourni par Linux, pour rechercher la ligne de texte qui correspond au modèle fourni par l'utilisateur.

grepprend l'entrée de l'utilisateur sous la forme de chaînes ou de mots que l'utilisateur souhaite rechercher dans un fichier particulier. La commande vérifie ensuite le fichier spécifié par l'utilisateur pour ce modèle, puis renvoie les lignes qui correspondent au modèle fourni.

Il fait un excellent travail en filtrant le contenu d'un fichier, facilitant ainsi notre tâche de rechercher un contenu particulier sur un ou plusieurs fichiers simultanément.

Dans cet article, passons en revue le fonctionnement de la grepcommande avec quelques exemples pratiques en détail.

Options disponibles avec la grepcommande

Ce sont quelques-unes des options fondamentales que vous utiliserez fréquemment avec la grepcommande.

Option La description
-i Pour une recherche insensible à la casse
-r Pour rechercher récursivement tous les fichiers dans le répertoire spécifié et ses sous-répertoires
-c Pour afficher le nombre total de fois qu'une chaîne apparaît
-v Pour afficher les lignes qui ne correspondent pas
-w Filtrer pour ce mot particulier utilisé séparément

Utilisation de la grepcommande

grepLa commande est généralement utilisée avec l' |utilitaire pipe ( ). Il peut être implémenté avec le shell pipe lorsque vous souhaitez l'utiliser avec d'autres commandes Linux. Cependant, greppeut également être utilisé individuellement sans l' |utilitaire pipe ( ).

Voyons quelques-unes des syntaxes de base de la grepcommande avec et sans l'utilitaire pipe.

Permettez-moi d'abord de vous montrer l'exemple de fichier texte que j'utiliserai pour illustrer la grepcommande.

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource
cartesian coordinates
importance of all th cartesian coordinates.
Following are two empty lines.



use of a bullock cart is a common sight in the village for the agrarian chores.

This is the end of the sample file.

greputilisé avec l' utilitaire pipe ( | )

grepLa commande peut être implémentée avec d'autres commandes Linux à l'aide des tubes shell. Comme, utiliser la catcommande pour afficher le contenu du fichier mais en même temps diriger la sortie en utilisant la grepcommande pour afficher uniquement le contenu que vous souhaitez voir. Cela sera plus clair lorsque nous parcourrons l'exemple.

Syntaxe :

[command] | grep [string]

Exemple :

cat sample.txt | grep legislature

Ici, j'ai utilisé la catcommande pour afficher quelques lignes du fichier 'sample.txt'. Seules les lignes contenant le mot « législature » ​​doivent être affichées et ignorer le reste des lignes.

Sortie :

[email protected]:~/workspace$ cat sample.txt | grep legislature
india stands on three pillars of legislature, executive and judiciary.
[email protected]:~/workspace$

greputilisé sans utilitaire pipe ( | )

greppeut même être utilisé directement comme une commande individuelle sans utiliser l' | utilitaire pipe ( ).

Syntaxe :

grep [string_to_be_searched] [filename]

Exemple :

grep India sample.txt

Sortie :

India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource

Ainsi, j'ai utilisé la grepcommande directement pour filtrer les lignes qui contiennent la chaîne 'Inde' du fichier texte 'sample.txt'.

Recherche insensible à la casse à l'aide de la grepcommande

Linux est très prudent quant à la sensibilité à la casse lorsque nous lançons les commandes sur le terminal. Cela oblige l'utilisateur à faire attention à la casse de la chaîne insérée dans la commande.

Voyons cela à travers un exemple.

grep peace sample.txt

Dans ce cas, nous n'obtiendrons pas de sortie car il n'existe pas de mot comme « paix » dans le fichier exemple. Nous avons le mot 'Paix' avec un 'P' majuscule. Le mot est le même mais lorsque nous utilisons la grepcommande sans aucune option, elle recherche la correspondance exacte dans le fichier, sans tenir compte de tout changement dans la casse.

Pour éviter cette ambiguïté, vous pouvez simplement utiliser l' -ioption qui dit littéralement à la grepcommande « oubliez la casse dans laquelle j'ai mis la chaîne et recherchez simplement tous les modèles correspondants dans le fichier ».

Syntaxe:

grep -i [string] [filename]

Exemple :

grep -i peace sample.txt

Sortie :

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
India Is a Beautiful Country Of Peace Loving People.

Toutes les lignes correspondantes sont affichées quel que soit le cas dans lequel se trouve la chaîne correspondante.

Recherche récursive à l'aide de la grepcommande

L' -roption recherchera tous les fichiers d'un répertoire et tous ses sous-répertoires qui correspondent au modèle de chaîne fourni par l'utilisateur dans la commande.

Syntaxe :

grep -i -r [string] [file_path]

Exemple :

grep -i -r tomcat /home/gaurav/workspace

La chaîne ici est 'tomcat' et elle sera recherchée dans l'espace de travail du répertoire. Tous les sous-répertoires et fichiers du répertoire « espace de travail » seront également analysés pour correspondre au modèle de chaîne fourni.

Sortie :

./context_log.policy:// catalina.policy - Security Policy Permissions for Tomcat 7
./context_log.policy:// Note: If tomcat-juli.jar is in ${catalina.base} and not in ${catalina.home},
./context_log.policy://  grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..}
./context_log.policy:grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
./context_log.policy:    permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server";
./context.xml:    
./catalina.properties:# - Tomcat Bootstrap JARs
./catalina.properties:# - Tomcat API JARs
./catalina.properties:# - Tomcat JARs
./catalina.properties:# - Common non-Tomcat JARs
./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar
./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true
./catalina.properties:#tomcat.util.buf.StringCache.char.enabled=true
./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000
./catalina.properties:#tomcat.util.buf.StringCache.cacheSize=5000
./server.xml:              pathname="conf/tomcat-users.xml" />
./server.xml:    
./tomcat-users.xml:  
./tomcat-users.xml:
./web.xml:  
./web.xml:  

REMARQUE : Lors de l'utilisation de l' -roption avec la grepcommande, nous devons fournir le chemin du fichier et non le nom du fichier

Recherche de mots entiers uniquement avec la grepcommande

Il arrive souvent que vous recherchiez un mot mais que vous finissiez par remplir votre terminal avec les lignes correspondantes qui contiennent votre mot correspondant mais pas en tant que mot individuel. Vous pouvez voir les lignes qui contiennent des mots dont la sous-partie est la chaîne que vous avez entrée.

Confus avec ça? Ne vous inquiétez pas, c'est beaucoup plus facile à comprendre une fois que vous avez l'exemple.

Exemple :

Ici, je veux rechercher un mot individuel « panier » et afficher toutes les lignes correspondant à ce mot dans le fichier « sample.txt ».

grep -i cart sample.txt

Sortie :

Cartesian coordinates
importance of all the Cartesian coordinates.
use of a bullock cart is a common sight in the village for the agrarian chores
The cart went missing as the boy left it loose.

Dans la sortie, vous pouvez observer que le mot « Cartésien » contient également le mot « panier » et, par conséquent, les lignes contenant le mot « Cartésien » sont également affichées même si nous ne voulons pas qu'elles soient affichées.

Vous pouvez utiliser l' -woption avec la grepcommande pour résoudre cette ambiguïté.

Syntaxe :

grep -i -w [string] [filename]

Exemple :

grep -i -w cart sample.txt

Sortie :

use of a bullock cart is a common sight in the village for the agrarian chores.
The cart went missing as the boy left it loose.

Maintenant, lorsque vous avez utilisé l' woption – avec, grepvous n'obtiendrez que les lignes dans lesquelles le mot « panier » est utilisé dans son ensemble.

Recherche inversée à l'aide de la grepcommande

grepLa commande peut également être utilisée de manière inverse. Nous pouvons utiliser la grepcommande à l'inverse en masquant les lignes correspondantes et en n'affichant que les lignes où la correspondance n'est pas trouvée. Vous pouvez le faire en utilisant l' -voption avec la grepcommande.

Syntaxe :

grep -i -v [string] [filename]

Exemple :

grep -i -v resource sample.txt

Sortie :

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
cartesian coordinates
importance of all th cartesian coordinates.




use of a bullock cart is a common sight in the village for the agrarian chores.
This is the end of the sample file.

Dans la sortie, toutes les autres lignes sont affichées à l'exception de la ligne qui contient le mot « ressource ».

Compter les occurrences de la chaîne correspondante

La sortie de la grepcommande est généralement très longue si les données du fichier sont volumineuses. Plus il y a de correspondances, plus les sorties de la grepcommande sont longues . Linux vous offre une option où vous pouvez afficher le nombre d'occurrences de la correspondance.

Syntaxe :

grep -i -c [string] [filename]

Exemple :

grep -i -c india sample.txt

Sortie :

[email protected]:~/workspace$ grep -i -c india sample.txt
4
[email protected]:~/workspace$

Ici, la sortie est un nombre qui est le nombre d'occurrences du mot « Inde » dans le fichier sample.txt.

REMARQUE : j'ai utilisé l' -ioption dans chaque exemple pour être juste en sécurité avec le problème de sensibilité à la casse. Si vous êtes sûr de la casse du mot que vous recherchez, vous pouvez alors omettre l' -i option en toute sécurité .

Conclusion

Nous avons appris les utilisations fondamentales de la grepcommande sur les systèmes Linux dans ce tutoriel. Nous avons également appris à afficher divers contenus qui correspondent le mieux à nos besoins et à ne pas encombrer le terminal avec des charges de lignes. grepLa commande sera sûrement un gain de temps si elle est utilisée pour analyser de grands ensembles de données.

Tags: #grep

Comment copier et coller sur Chromebook

Comment copier et coller sur Chromebook

La première chose que vous pourriez vous demander en passant à un Chromebook est de savoir comment faire les choses de base, le genre de choses que vous aviez sous la main dans votre ancien système d'exploitation. Le copier-coller est l'une de ces fonctions fondamentales que vous devez utiliser à un moment ou à un autre.

Comment faire un test de dactylographie sur Linux avec tt

Comment faire un test de dactylographie sur Linux avec tt

À l'ère moderne de la technologie, la dactylographie est devenue l'une des activités les plus courantes pour de nombreuses professions. Apprendre à taper plus rapidement avec précision peut vous aider à faire plus de choses dans le même laps de temps.

Le Wi-Fi ne fonctionne pas sur Ubuntu ? Voici comment y remédier

Le Wi-Fi ne fonctionne pas sur Ubuntu ? Voici comment y remédier

Ubuntu est populaire pour sa robustesse et relativement moins d'erreurs. Mais ce n'est pas sans son sac de problèmes, bien sûr. L'un de ces problèmes concerne son pilote Wi-Fi. Vous pourriez mettre votre système sous tension pour constater que votre Wi-Fi ne fonctionne pas.

Installez TeamViewer 8 pour Ubuntu 12.04

Installez TeamViewer 8 pour Ubuntu 12.04

Dans cette vidéo, j'installe et utilise TeamViewer 8 pour le système Ubuntu 12.04 avec un guide complet. Mais cela fonctionnera également sur Windows.

Comment créer et scanner des codes QR sur Chromebook

Comment créer et scanner des codes QR sur Chromebook

Les codes de réponse rapide, ou codes QR en abrégé, sont des codes-barres avancés qui contiennent plus d'informations qu'un code-barres traditionnel. Ces codes sont bidimensionnels, ce qui vous permet de les scanner verticalement ou horizontalement.

Comment installer et supprimer des packages dans Arch Linux

Comment installer et supprimer des packages dans Arch Linux

Vous voulez installer des packages sur Arch Linux mais vous ne savez pas comment faire ? Beaucoup de gens sont confrontés à ce problème lorsqu'ils migrent pour la première fois des distributions basées sur Debian vers Arch. Cependant, vous pouvez facilement gérer les packages sur votre système basé sur Arch à l'aide des gestionnaires de packages.

15 meilleurs thèmes pour Ubuntu 20.04 en 2020

15 meilleurs thèmes pour Ubuntu 20.04 en 2020

De nombreux nouveaux thèmes mis à jour sont prêts à être installés sur le nouveau bureau GNOME d'Ubuntu 20.04. Voici une liste des meilleurs thèmes Ubuntu en 2020

5 meilleures applications de transfert de fichiers Wi-Fi dUbuntu vers Android

5 meilleures applications de transfert de fichiers Wi-Fi dUbuntu vers Android

Un mécanisme comme le FTP, le transfert de fichiers peer-to-peer, le transfert Wi-Fi vous fera gagner du temps si vous partagez souvent des fichiers entre votre Android et Ubuntu.

Comment installer Spotify sur Linux

Comment installer Spotify sur Linux

Spotify est l'un des plus grands services de streaming musical. Il a des clients natifs pour les appareils mobiles (Android et iOS) et de bureau (Mac et Windows).

9 commandes de base pour démarrer avec Linux

9 commandes de base pour démarrer avec Linux

Les guides pratiques Linux s'attendent souvent à ce que vous effectuiez certaines opérations dans le terminal, ce qui peut sembler intimidant au début. Mais ne vous inquiétez pas ; cette aide-mémoire pour les commandes Linux couvrira le processus d'ouverture d'un terminal et l'émission de quelques commandes utiles.