GNU/Linux >> Tutoriels Linux >  >> Debian

Comment utiliser la commande grep sur Debian 10

Grep signifie impression d'expression régulière globale. C'est une commande utile et largement utilisée par les ingénieurs système Linux lors de la recherche d'une chaîne ou de modèles dans des fichiers normaux et dans le système.

Dans cet article, je vais démontrer l'utilisation de la commande grep avec un grand nombre d'exemples. J'ai testé toutes les commandes et exemples sur une machine Debian 10.

Prérequis

Vous devez avoir une seule machine Debian 10 avec des privilèges root.

Installation de la commande grep sur Debian 10

Par défaut, grep est installé sur la plupart des systèmes, y compris Debian 10. S'il n'est pas installé, ouvrez le terminal et lancez la commande suivante avec les privilèges root.

apt-get install grep

Lorsque vous êtes invité à confirmer, appuyez sur y, puis entrez à partir du clavier. Attendez la fin de l'installation.

Étant donné que grep était déjà installé sur ma machine, vérifiez la capture d'écran ci-dessus. Vérifions sa version en exécutant la commande suivante sur le terminal.

grep --version

Il doit également renvoyer la version avec d'autres détails, comme indiqué ci-dessous.

Utilisation de la commande grep

Une fois que nous avons la commande grep disponible sur notre machine, nous pouvons jouer avec.

Rechercher un fichier ou un répertoire spécifique dans votre système

Lorsque vous souhaitez rechercher ou localiser un fichier spécifique dans votre système, la syntaxe de la commande doit être la suivante.

ls -l | grep -i "nom du fichier ou du répertoire"

Je souhaite rechercher un répertoire réseau dans /etc/. La commande complète devrait ressembler à ce qui suit.

ls -l /etc/ | grep -i "network"

L'option "i" ignore la sensibilité à la casse. Par conséquent, il doit traiter le réseau, le réseau ou le RÉSEAU comme similaire.

Vous trouverez ci-dessous l'exemple de sortie.

Supposons que je souhaite rechercher un fichier "interfaces.d" situé dans /etc/network/, vous devez exécuter la commande suivante.

ls -l /etc/network/ | grep -i "interfaces.d"

Il est nécessaire d'inclure le mot que vous cherchez entre guillemets s'il contient des espaces. Supposons que nous recherchions "démon réseau", la commande ci-dessus devrait ressembler à ce qui suit.

ls -l /etc/réseau/ | grep -i "démon d'interfaces"

Rechercher un mot complet avec grep

Vous avez peut-être remarqué que grep a renvoyé toutes sortes de résultats qui incluent "réseau", par exemple. réseaux, réseau, réseau ou abcnetworking, etc. Si vous souhaitez limiter votre recherche pour inclure ce mot spécifique, vous devez utiliser l'option -w comme suit.

ls -l /etc/ | grep -i -w network

Vous trouverez ci-dessous l'exemple de sortie.

Rechercher un texte spécifique dans un fichier

Nous avons un cas où vous avez un fichier volumineux et que vous souhaitez rechercher un texte spécifique. La syntaxe de la commande doit être la suivante.

grep - i "textyouwanttosearch" "filenameandpath"

Supposons que je veuille rechercher le mot "renard" dans test.txt qui se trouve dans mon répertoire actuel. Exécutez la commande suivante sur un terminal.

grep -i "fox" test.txt

Ci-dessous se trouve l'exemple de sortie qui ne renvoie que les lignes du fichier contenant le mot "renard".

Effectuer une recherche récursive (recherche dans plusieurs fichiers)

Si vous souhaitez rechercher un texte dans un grand nombre de fichiers et de sous-répertoires à l'intérieur d'un répertoire, vous pouvez effectuer une recherche récursive à l'aide de l'option -r.

grep -i -r "fox"

Ci-dessous se trouve l'exemple de sortie qui montre que le mot fox est présent dans les fichiers test.txt et tree.txt dans la ligne affichée.

Vous pouvez également fournir un chemin de répertoire et il recherchera tous les fichiers dans ce répertoire et ses sous-répertoires.

Supposons que je veuille effectuer une recherche récursive pour le texte "interfaces" dans /etc/ et ses sous-répertoires. La commande doit être exécutée comme suit.

grep -i -r interfaces /etc/

Vous trouverez ci-dessous l'exemple de sortie.

Rechercher deux mots différents avec une seule commande grep

Vous pouvez rechercher deux mots différents avec une seule commande egrep (qui est une variante de grep) comme suit. Supposons que je souhaite rechercher un mot complet fox et lazy dans plusieurs fichiers à l'aide de l'option -r. Vous devez exécuter la commande suivante sur le terminal.

egrep -w -r "fox|lazy"

Vous trouverez ci-dessous l'exemple de sortie.

Numéroter la ligne qui correspond au texte

Une autre option utile est le -n qui numérote les lignes correspondant au texte. Voici l'exemple illustrant comment utiliser l'option -n.

grep -i -n "fox" test.txt

Ci-dessous se trouve l'exemple de sortie qui numérote les lignes correspondant au mot "renard".

Inverser la recherche

C'est l'inverse de ce que nous avons fait plus haut. Si vous souhaitez renvoyer un texte qui n'inclut pas le mot que vous spécifiez, vous pouvez utiliser l'option -v.

Vous trouverez ci-dessous l'exemple illustrant l'utilisation de l'option -v.

grep -v -i "fox" test.txt

Vous trouverez ci-dessous l'exemple de sortie.

Toutes les options ci-dessus (-n, etc.) peuvent également être appliquées avec l'option -v.

Compter les matchs

Si vous souhaitez simplement compter le nombre de correspondances par rapport à un texte spécifique, vous pouvez utiliser l'option -c.

Comptons le mot « fox » dans test.txt situé dans le répertoire courant. Exécutez la commande suivante sur le terminal.

grep -i -c fox test.txt

Vous trouverez ci-dessous l'exemple de sortie après l'exécution de la commande ci-dessus qui montre que le mot fox a correspondu trois fois dans le fichier test.txt.

Afficher les noms de fichiers qui correspondent au texte spécifique

Si vous voulez trouver les fichiers qui contiennent votre mot spécifique, vous pouvez utiliser l'option -l avec -r comme suit. En supposant que tous les fichiers se trouvent dans votre répertoire actuel et que le mot spécifique que vous recherchez ou que vous recherchez est "renard".

grep -i -r -l fox

Ci-dessous se trouve l'exemple de sortie qui montre que le mot fox est présent dans test.txt et dans un sous-répertoire et un fichier asif.txt

Afficher uniquement le texte correspondant

Par défaut, grep affiche la ligne entière qui correspond au texte ou au mot souhaité. Si vous voulez que grep vous montre les mots correspondants, vous pouvez utiliser l'option -o comme suit.

grep -i -o fox test.txt

Vous trouverez ci-dessous l'exemple de sortie.

Afficher les lignes commençant par un ou plusieurs mots spécifiques

Si vous souhaitez récupérer toutes les lignes commençant par un ou plusieurs mots spécifiques, vous pouvez utiliser l'opérateur ^ comme suit.

En supposant que vous souhaitiez renvoyer toutes ces lignes qui commencent par "unix" et que le fichier est log.txt situé dans votre répertoire actuel.

Exécutez la commande suivante sur le terminal.

grep -i "^unix" log.txt

Vous trouverez ci-dessous l'exemple de sortie.

Afficher les lignes qui se terminent par le(s) mot(s) spécifique(s)

Si vous souhaitez renvoyer toutes ces lignes à partir d'un fichier qui se termine par le ou les mots spécifiques, vous pouvez utiliser l'opérateur $ comme suit. En supposant que le mot est "linux" et que le fichier que vous souhaitez rechercher est rev.txt situé dans votre répertoire actuel.

Exécutez la commande suivante sur le terminal.

grep -i "linux$" rev.txt

Vous trouverez ci-dessous l'exemple de sortie.

Conclusion

C'était donc mon tutoriel sur l'utilisation de la commande grep. J'ai démontré la plupart des options grep qui sont principalement utilisées et dont vous pourriez avoir besoin dans votre travail quotidien. Il existe quelques variantes de la commande grep, notamment zgrep, etc. Vous pouvez les explorer par vous-même.


Debian
  1. Comment utiliser la commande Linux grep

  2. Comment utiliser la commande grep sous Linux/UNIX

  3. Comment utiliser la commande Grep pour rechercher du texte dans des fichiers

  4. Comment utiliser la commande Su sous Linux

  5. Comment installer Java 17 dans Debian 11

Comment utiliser la commande PS

Comment utiliser la commande TOP

Comment utiliser grep sous Linux

Comment installer et utiliser MongoDB sur Debian 11

Comment installer Tomcat 9 sur Debian 11

Comment installer Apache sur Debian 11