Commande Grep: outil puissant pour trouver du texte à partir du terminal

Commande Grep

Presque tous ceux qui ont un ordinateur ou qui en travaillent connaissent le raccourci clavier Ctrl + F pour trouver du texte. Le "F" signifie "Find", "to find" en anglais, et peut être utilisé, par exemple, pour rechercher du texte sur une page Web. Ce raccourci est également disponible dans de nombreuses applications, il existe des programmes qui utilisent le "B" pour "Rechercher", mais ces raccourcis ne fonctionnent que si nous sommes à l'intérieur de l'application et avec le fichier ouvert. Sous Linux, nous avons des outils très puissants que nous pouvons lancer à partir du terminal et si nous le voulons trouver tout texte qui se trouve dans notre équipe, nous utiliserons la commande grep.

grep C'est une commande qui nous aidera à trouver du texte dans le fichier que nous indiquons. Son nom vient de g / re / p, une commande qui fonctionne pour quelque chose de similaire dans un éditeur de texte Unix / Linux. Comme beaucoup d'autres commandes, grep il en a beaucoup options disponibles que nous ajouterons sous forme de lettres et chacun servira une tâche différente. En combinant ces options, nous pourrons effectuer des recherches complexes dans un ou plusieurs fichiers. Ici, nous vous montrons tout ce que vous devez savoir.

avec grep nous trouverons n'importe quel texte dans n'importe quel fichier

Tout d'abord, nous expliquerons les options disponibles:

  • -i: ne fera pas la distinction entre les majuscules et les minuscules.
  • -w: forcez-le à ne trouver que des mots spécifiques.
  • -v: sélectionne les lignes qui ne correspondent pas.
  • -n: affiche le numéro de la ligne avec les mots demandés.
  • -h: supprime le préfixe du nom de fichier Unix dans la sortie.
  • -r: recherche les répertoires de manière récursive.
  • -R: comme -r mais suivez tous les liens symboliques.
  • -l: affiche uniquement les noms de fichiers avec des lignes sélectionnées.
  • -c- Affiche un seul compte par fichier des lignes sélectionnées.
  • -Couleur: Affiche les motifs correspondants en couleurs.

Dans l'image que vous avez en tête de cet article, j'ai recherché le mot "Images" dans le fichier "830.desktop" qui se trouve dans ce chemin. Comme vous pouvez le voir, j'ai écrit:

grep Imágenes /home/pablinux/Documentos/830.desktop

Gardez à l'esprit que dans cet article, nous écrirons des exemples qui doivent être modifiés en fonction de nos préférences de recherche. Lorsque nous disons "Fichier", "Word", etc., nous ferons référence au fichier avec son chemin. Si je venais d'écrire "grep Images 830.desktop", j'aurais reçu un message disant que le fichier n'existe pas. Ou alors ce serait le cas à moins que le fichier ne se trouve dans le répertoire racine.

D'autres exemples seraient:

  • grep -i images /home/pablinux/Documentos/830.desktop, où "images" serait le mot que nous voulons trouver et le reste le fichier avec son chemin. Cet exemple rechercherait des "images" dans le fichier "830.desktop" insensible à la casse.
  • grep -R images: il rechercherait toutes les lignes d'un répertoire et tous ses sous-répertoires où se trouve le mot "images".
  • grep -c exemple test.txt: cela nous chercherait et afficherait le nombre total de fois où "exemple" apparaît dans un fichier appelé "test.txt.

Avec grep nous pouvons également rechercher des fichiers

Si nous voulons trouver le fichier 830.desktop, nous écrirons la commande suivante:

grep 830.desktop

Cela effectuera un recherchez le fichier «830.desktop» dans notre dossier personnelEn d'autres termes, si le fichier se trouve dans le dossier personnel d'un autre utilisateur, il ne sera pas trouvé. C'est la chose la plus normale au monde car un utilisateur n'a pas la permission d'accéder au contenu d'un autre sans son mot de passe.

Comment effectuer des recherches récursives

grep cela nous permet aussi effectuer des recherches soumises à des règles ou directives récurrentes. Par exemple, lisez tous les fichiers de chaque répertoire contenant le mot «Pablinux». Pour cela, nous écrirons:

grep -r Pablinux /home/

Ou bien:

grep -R Pablinux /home/

Nous verrons les résultats pour "Pablinux" sur une ligne séparée précédée du nom du fichier dans lequel il a été trouvé. Si nous ne voulons pas voir les noms de fichiers dans la sortie des données, nous utiliserons l'option -h (de "hide"; hide):

grep -h -R Pablinux /home/

Nous pouvons joindre les options ensemble et écrire "-hR" sans les guillemets.

Comment faire des recherches de mots exacts

Parfois, il y a des fichiers qui contiennent ce que nous voulons rechercher autre chose. Par exemple, cela peut nous arriver dans des mots composés et en recherchant des «forêts», nous pouvons trouver des «rangers». Si nous voulons trouver un mot exact nous utiliserons l'option -w:

grep -w bosques /home/pablinux/Documentos/vacaciones.txt

La commande ci-dessus rechercherait des "forêts", ignorant les rangers, dans le fichier "vacation.txt" dans le chemin indiqué. Si nous voulons rechercher deux mots différents, nous utiliserons la commande égrep:

egrep -w bosques|plantas /ruta/del/archivo

Savoir combien de fois un mot apparaît dans un fichier

grep il est également capable de compter combien de fois un mot apparaît dans un fichier. Pour cela, nous utiliserons l'option -c:

grep -c prueba /ruta/al/archivo

En ajoutant l'option -n, nous verrons le numéro de la ligne dans laquelle le mot apparaît.

Recherches inversées

On peut aussi faire le contraire, c'est-à-dire rechercher des lignes qui ne contiennent pas de mot. Pour cela, nous utiliserons l'option -v, qui serait la suivante:

grep -v la ruta/al/archivo

La commande ci-dessus afficherait toutes les lignes qui ne contenaient pas le mot «le». Cela peut être utile dans les documents ou les listes dans lesquels un mot est répété plusieurs fois et, pour une raison quelconque, nous devons accéder au reste des lignes.

Accéder aux informations système avec grep

Modèle PC

grep il n'est pas seulement capable de rechercher dans les fichiers. C'est aussi capable d'afficher les informations système. Dans la capture d'écran précédente, nous pouvons voir comment cela nous montre quel modèle de PC nous avons (je sais que ce n'est pas l'ordinateur portable le plus puissant au monde). Pour cela, nous avons utilisé la commande:

cat /proc/cpuinfo | grep -i 'Model'

Ou bien:

grep -i 'Model' /proc/cpuinfo

Si nous voulons voir les noms des unités de disque, nous écrirons:

dmesg | egrep '(s|h)d[a-z]'

Comment répertorier uniquement les noms de fichiers correspondants

Si nous voulons voir une liste avec uniquement les noms des fichiers qui correspondent à une recherche, nous utiliserons l'option -l comme indiqué ci-dessous:

grep -l 'main' *.c

Et si nous voulons voir le mot en couleurs, nous écrirons:

grep --color palabra /ruta/al/archivo

Comme vous pouvez le voir, la commande grep est un des modéls outil très puissant Cela en vaut la peine surtout dans les cas où nous ne nous souvenons pas où nous avons écrit quelque chose ou en programmation. De plus, cela nous aide à trouver des informations sur le système d'une manière qui plaira aux amateurs de terminaux. Ce guide sur la commande pour trouver des textes vous a-t-il été utile grep?


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Nordri dit

    Bonjour!
    Quand vous dites que Grep est également utilisé pour rechercher des fichiers, je ne pense pas que ce soit correct car si vous exécutez grep EXPRESSION et ne lui passez pas le fichier, il attendra l'entrée de données de l'entrée standard.
    Selon la page de manuel:
    grep recherche dans les FICHIERS d'entrée nommés les lignes contenant une correspondance avec le PATTERN donné. Si aucun fichier n'est spécifié, ou si le fichier «-» est donné, grep recherche l'entrée standard.
    C'est pourquoi vous pouvez l'utiliser dans des pipelines, comme celui qui analyse la sortie de / proc / cpuinfo en passant la sortie de cette commande comme entrée à grep, vous pouvez faire la recherche.
    salutations

  2.   Ana dit

    Très bon message.
    Vous l'expliquez très bien et vous allez droit au but.