Linux : Les commandes du terminal

Effectuer une recherche de contenu avec grep

Testez gratuitement nos 1257 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous allez maintenant prendre en main la commande grep pour chercher dans le contenu de fichiers texte.
05:11

Transcription

Voyons maintenant une commande très utilisée, très pratique, indispensable à connaître, dont vous avez surement déjà entendu parler qui s'appelle « grep ». Ca sert à quoi? A faire une recherche à l'intérieur d'un ou de plusieurs fichiers. Donc, je vais prendre ici, mon fichier fstab par exemple, je vais regarder le contenu, il y a 2 ou 3 choses et je voudrais avoir seulement les lignes qui commencent par un dièse. Je voudrais voir tous les commentaires mais pas le reste. Pas de problèmes, « grep » ensuite, je vais indiquer un pattern en expression rationnelle. je vais mettre, ici, une expression rationnelle qui va dire : Eh bien il faut que ça commence par un dièse et ensuite, on va chercher dans quoi, eh bien dans « fstab ». Et voilà le résultat, je n'obtiens de ce fichier, que les lignes qui commencent par un dièse, en plus il y a une petite coloration pour me dire : Et voilà le pattern que j'ai trouvé. Je vais faire une recherche pour dire, je veux faire un grep et trouver toutes les lignes qui contiennent le mot print. Et voilà, il était là. Et c'est donc cette ligne. je veux uniquement les lignes, je reprends ma précédente recherche, qui ne comporte qu'un dièse, je mets le signe de de fin de ligne ici, et je vais avoir seulement les lignes avec les commentaires vides. de même je veux avoir toutes les lignes qui sont vides, donc qui ne comporte qu'un retour chariot, je ne sais pas s'il y en a, non il n'y en a pas. Donc, il faut maîtriser bien entendu, la puissance des expressions rationnelles. Il y a une formation complète au catalogue, sur les expressions rationnelles. Votre recherche va être case sensitive, si je fais ça, je n'obtiens rien. Alors vous pouvez utiliser une option qui s'appelle « i » pour dire, non je veux une recherche case « i » insensitive. Et voilà. Vous voulez toutes les lignes qui ne comportent pas print, eh bien vous renversez avec un v, et voilà toutes les lignes qui ne comportent pas print case insensitive. Vous voulez non pas avoir les lignes, mais le nombre de lignes qui ont été trouvé, ajoutez l'option c pour count, il y en a 10. Vous voulez avoir les lignes, comme ceci, mais vous voulez savoir quelle est la position de la ligne, ajoutez, vous vous en doutez peut-être, « n » pour avoir le numéro de la ligne. Vous voyez que le print est manifestement sur la ligne 3. Maintenant, vous voulez avoir tous les fichiers qui se trouvent dans « etc » qui comportent le mot print, onc je vais enlever mon « v », je vais enlever le « n » aussi , je m'en fiche, et, je vais pas mettre ici le nom du fichier, mais je vais dire, à caractère générique, tous les fichiers. Et vous voyez que, bon, j'ai plusieurs permissions non accordées, donc, je vais plutôt le faire avec un « Sudo », ce sera plus pratique. Et on va me dire : Ah attends c'est un dossier. bon, effectivement, mais vous voyez, je trouve « ucf.conf » qui contient « printed ». Ok? Donc je peux manipuler mon expression rationnelle, je peux également utiliser un autre modificateur, une autre option qui s'appelle « w » pour dire je cherche que les mots complets. Et là, je ne vais pas en avoir beaucoup beaucoup. Vous voyez, ici je trouve print, comme ceci. Donc, le mot complet. Si vous voulez, au lieu d'avoir le contenu des lignes qui ont été trouvées, seulement le nom du fichier, eh bien vous utilisez l'option « l » qui va vous montrer seulement le nom du fichier dans lequel on a trouvé quelque chose. Alors vous avez toujours : est un dossier, est un dossier, d'accord. Cela veut dire que, la recherche qu'on va faire ici, elle ne s'applique qu'au premier niveau. Si je veux faire une recherche récursive, eh bien devinez, je vais rajouter l'option « r ». Et vous voyez que je trouve des résultats dans init.d, reboot, etc. Donc là on a vraiment demander à « grep » de faire une recherche complètement récursive dans tous les sous répertoires pour trouver tous les fichiers qui contiennent « print ». Vous avez deux variantes, juste au passage, de « grep ». Vous avez la variante « egrep » qui utilise une syntaxe étendue d'expression rationnelle et vous avez la syntaxe « fgrep » qui n'utilise pas d'expression rationnelle, mais une liste de mots. Donc c'est peut-être d'un usage plus simple si vous ne maîtrisez pas les expressions rationnelles. Mais vous pouvez partir avec « grep », la commande de base, sans aucun problèmes et utiliser des expressions rationnelles assez simples à maîtriser.

Linux : Les commandes du terminal

Découvrez l’utilisation de nombreuses commandes et options qui vous faciliteront la vie lors de l’administration de Linux. Franchissez ainsi une étape dans votre expertise.

1h59 (25 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :29 févr. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !