La commande Linux grep signifie Global Regular Expression Print (impression d’expression régulière globale). Cette commande permet de traiter le texte ligne par ligne et d’en imprimer toutes les lignes correspondant à un modèle spécifié.
En effet, la commande Grep est utilisée pour rechercher un texte dans un fichier donné. La commande Linux grep est l’une des commandes les plus utiles sur Linux. Si cette commande n’est pas disponible sur votre serveur VPS, vous pouvez facilement l’installer par le biais du gestionnaire de paquets.
Il vous est possible d‘installer Grep en utilisant les commandes suivantes :
- Pour les serveurs sous Debian et Ubuntu:
$ sudo apt-get install grep
- Pour les serveurs sous RHEL, CentOS et Fedora
$ sudo yum install grep
Linux grep : quelques commandes basiques
La commande Grep se compose de trois parties dans sa forme la plus simple. Tout d’abord, vous avez la commande « grep » suivi de ce que vous recherchez. Après cette chaîne vient le nom du fichier concerné par la recherche.
La syntaxe la plus simple de cette commande est la suivante:
$ grep chaine fichier.txt
Cette commande peut contenir de nombreuses options et variations. De plus, il vous est possible de combiner autant d’options que nécessaire selon vos besoins.
Rechercher dans un fichier
Vous pouvez imprimer n’importe quelle ligne se trouvant dans un fichier. Pour cela, il est nécessaire d’utiliser la commande suivante:
$ grep chaine fichier.txt
La commande linux Grep affichera chaque ligne ou il y a une correspondance avec le mot « chaine« .
Rechercher à l’intérieur de plusieurs fichiers
Vous pouvez effectuer une recherche à l’intérieur de plusieurs fichiers. Pour cela, il vous suffit d’indiquer tous les fichiers dans lesquels rechercher en prenant soin de les séparer par un espace.
$ grep chaine fichier.txt fichier1.txt
Le terminal SSH imprimera le nom de chaque fichier contenant les lignes correspondantes à votre recherche.
Rechercher uniquement des mots entiers
Vous pouvez, grâce à la commande Linux grep effectuer une recherche sur des mots entiers uniquement. Pour cela, il faut ajouter à la commande grep « -w« .
$ grep -w chaine fichier.txt
Ignorer la casse dans les recherches grep
En effet il est bon de savoir que la commande grep est sensible à la casse. C’est la raison pour laquelle il peut être nécessaire de pouvoir imprimer les résultats en minuscule mais aussi en majuscule pour une chaîne donnée. La commande sera la suivante:
$ grep -i chaine fichier.txt
Inclure les sous-dossiers dans les résultats
Vous pouvez inclure les sous-dossiers lors de votre recherche. Pour cela, il suffit d’ajouter à la commande grep, l’opérateur « -r« .
$ grep -r chaine *
Cette commande imprimera tous les résultats trouvés dans les dossiers et sous-dossiers de l’emplacement où vous vous trouvez.
Recherche grep inverse
Grep dispose d’une commande vous permettant d’afficher toutes les lignes ne correspondant pas à un modèle spécifique. Pour cela, il sera nécessaire d’ajouter l’opérateur « -v » à la commande grep.
$ grep -v chaine fichier.txt
Imprimer les lignes correspondant à une chaîne de recherche
Afin d’imprimer les lignes correspondant uniquement à une chaîne de recherche, il est nécessaire d’ajouter l’opérateur « -x » à votre commande comme dans l’exemple suivant:
$ grep -x « mon text » *
Seules les lignes avec la correspondance exactes seront affichées. Il est à noter que si votre chaîne contient des espaces, pour que cela fonctionne, il est nécessaire d’utiliser des guillemets.
Répertorier les fichiers correspondants
Afin d’imprimer uniquement les noms des fichiers correspondant à votre recherche, il faut utiliser l’opérateur « -l« .
$ grep -l texte *
Pour rappel, il est préférable d’utiliser l’opérateur « -r » avec cette commande afin d’inclure les sous-dossiers dans le résultat de recherche.
Compter le nombre de correspondance
La commande Linux grep peut afficher le nom des fichiers et le nombre de lignes trouvées correspondant à votre recherche grâce à l’opérateur « -c« .
$ grep -c texte *
Linux Grep: quelques commandes avancées
- ip -a: Cette commande va nous permettre d’avoir des informations sur la configuration réseau actuelle.
- ip -a | grep « eth0 »: Cette commande va permettre de filtrer le résultat de recherche. En effet, elle ne va retenir que les lignes correspondantes à « eth0 ».
- ip -a > fichier.txt : Va nous permettre de stocker le résultat dans un fichier texte.
Conclusion
Vous êtes désormais en mesure d’utiliser la commande grep sous Linux 👍 La commande grep est très flexible. De plus, en utilisant les opérateurs disponibles avec cette commande, il vous sera possible de trouver les textes cachés dans des milliers de fichiers.