GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser la commande grep sous Linux/UNIX

Présentation

Ce guide détaille les commandes grep les plus utiles pour les systèmes Linux/Unix.

Après avoir parcouru toutes les commandes et exemples, vous apprendrez à utiliser grep pour rechercher des fichiers pour un texte à partir du terminal.

Prérequis

  • Système de type Linux ou UNIX
  • Accès à un terminal/ligne de commande
  • Un utilisateur autorisé à accéder aux fichiers et répertoires souhaités

Qu'est-ce que la commande grep ?

Grep est un acronyme qui signifie G R global E régulier xpression P imprimer.

Grep est un outil de ligne de commande Linux / Unix utilisé pour rechercher une chaîne de caractères dans un fichier spécifié. Le modèle de recherche de texte est appelé une expression régulière. Lorsqu'il trouve une correspondance, il imprime la ligne avec le résultat. La commande grep est pratique lors de la recherche dans des fichiers journaux volumineux.

Utilisation de la commande grep

La commande grep se compose de trois parties dans sa forme la plus élémentaire. La première partie commence par grep , suivi du motif que vous recherchez. Après la chaîne vient le nom du fichier dans lequel le grep effectue la recherche.

La syntaxe de commande grep la plus simple ressemble à ceci :

La commande peut contenir de nombreuses options, variations de modèles et noms de fichiers. Combinez autant d'options que nécessaire pour obtenir les résultats dont vous avez besoin. Vous trouverez ci-dessous les commandes grep les plus courantes avec des exemples .

Pour rechercher un fichier

Pour imprimer n'importe quelle ligne d'un fichier contenant un modèle spécifique de caractères, dans notre cas phoenix dans le fichier sample2 , exécutez la commande :

grep phoenix sample2

Grep affichera chaque ligne où il y a une correspondance pour le mot phoenix . Lors de l'exécution de cette commande, vous n'obtenez pas de correspondances exactes. Au lieu de cela, le terminal imprime les lignes avec des mots contenant la chaîne de caractères que vous avez saisie. Voici un exemple :

Pour rechercher plusieurs fichiers

Pour rechercher plusieurs fichiers avec la commande grep, insérez les noms de fichiers que vous souhaitez rechercher, séparés par un espace.

Dans notre cas, la commande grep pour faire correspondre le mot phoenix en trois fichiers sample , sample2 , et sample3 ressemble à cet exemple :

grep phoenix sample sample2 sample3

Le terminal imprime le nom de chaque fichier contenant les lignes correspondantes et les lignes réelles contenant la chaîne de caractères requise.

Vous pouvez ajouter autant de noms de fichiers que nécessaire. Le terminal imprime une nouvelle ligne avec le nom de fichier pour chaque correspondance qu'il trouve dans les fichiers répertoriés.

Rechercher tous les fichiers dans le répertoire

Pour rechercher tous les fichiers dans le répertoire en cours, utilisez un astérisque au lieu d'un nom de fichier à la fin d'une commande grep.

Dans cet exemple, nous utilisons nix comme critère de recherche :

grep nix *

La sortie affiche le nom du fichier avec nix et renvoie la ligne entière.

Pour rechercher uniquement des mots entiers

Grep vous permet de rechercher et d'imprimer les résultats pour des mots entiers uniquement. Pour rechercher le mot phoenix dans tous les fichiers du répertoire courant, ajoutez -w à la commande grep.

grep -w phoenix *

Cette option n'imprime que les lignes avec des mots entiers correspondants et les noms des fichiers dans lesquels elle les a trouvés :

Lorsque -w est omis, grep affiche le motif de recherche même s'il s'agit d'une sous-chaîne d'un autre mot.

Si vous souhaitez rechercher plusieurs chaînes et modèles de mots, consultez notre article sur la façon de grep pour plusieurs chaînes, modèles ou mots.

Pour ignorer la casse dans les recherches Grep

Comme les commandes grep sont sensibles à la casse, l'un des opérateurs les plus utiles pour les recherches grep est -i. Au lieu d'imprimer uniquement les résultats en minuscules, le terminal affiche les résultats en majuscules et en minuscules. La sortie comprend des lignes avec des entrées de casse mixtes.

Un exemple de cette commande :

grep -i phoenix *

Si nous utilisons l'opérateur -i operator pour rechercher des fichiers dans le répertoire courant pour phoenix , le résultat ressemble à ceci :

Pour rechercher des sous-répertoires

Pour inclure tous les sous-répertoires dans une recherche, ajoutez le -r opérateur à la commande grep.

grep -r phoenix *

Cette commande imprime les correspondances pour tous les fichiers dans le répertoire actuel, les sous-répertoires et le chemin exact avec le nom de fichier. Dans l'exemple ci-dessous, nous avons également ajouté le -w opérateur pour afficher des mots entiers, mais le formulaire de sortie est le même.

Recherche grep inverse

Vous pouvez utiliser grep pour imprimer toutes les lignes qui ne le font pas correspondre à un modèle spécifique de caractères. Pour inverser la recherche, ajoutez -v à une commande grep.

Pour exclure toutes les lignes contenant phoenix , saisissez :

grep -v phoenix sample

Le terminal imprime toutes les lignes qui ne contiennent pas le mot utilisé comme critère de recherche. Utilisez -i operator ignorer la casse pour exclure complètement le mot utilisé pour cette recherche :

Pour afficher les lignes qui correspondent exactement à une chaîne de recherche

La commande grep imprime des lignes entières lorsqu'elle trouve une correspondance dans un fichier. Pour imprimer uniquement les lignes qui correspondent complètement à la chaîne de recherche, ajoutez le -x option.

grep -x “phoenix number3” *

La sortie affiche uniquement les lignes avec la correspondance exacte. S'il y a d'autres mots ou caractères dans la même ligne, le grep ne l'inclut pas dans les résultats de la recherche. N'oubliez pas d'utiliser des guillemets chaque fois qu'il y a un espace ou un symbole dans un modèle de recherche.

Voici une comparaison des résultats sans et avec le -x opérateur dans notre commande grep :

Pour répertorier les noms des fichiers correspondants

Parfois, vous avez seulement besoin de voir les noms des fichiers qui contiennent un mot ou une chaîne de caractères et d'exclure les lignes réelles. Pour imprimer uniquement les noms de fichiers correspondant à votre recherche, utilisez le -l opérateur :

grep -l phoenix *

La sortie montre les noms de fichiers exacts qui contiennent phoenix dans le répertoire courant mais n'imprime pas les lignes avec le mot correspondant :

Pour rappel, utilisez l'opérateur de recherche récursive -r pour inclure tous les sous-répertoires dans votre recherche.

Pour compter le nombre de correspondances

Grep peut afficher les noms de fichiers et le nombre de lignes où il trouve une correspondance pour votre mot.

Utilisez le -c opérateur pour compter le nombre de correspondances :

grep -c phoenix *

Pour afficher le nombre de lignes avant ou après une chaîne de recherche

Parfois, vous avez besoin de plus de contenu dans les résultats de recherche pour décider ce qui est le plus pertinent.

Utilisez les opérateurs suivants pour ajouter les lignes souhaitées avant, après une correspondance ou les deux :

  • Utilisez -A et un nombre de lignes à afficher après une correspondance :grep -A 3 phoenix sample - cette commande imprime trois lignes après la correspondance.
  • Utilisez -B et un nombre de lignes à afficher avant une correspondance :grep -B 2 phoenix sample - cette commande imprime deux lignes avant le match.
  • Utilisez -C et un nombre de lignes à afficher avant et après le match :grep -C 2 phoenix sample - cette commande imprime deux lignes avant et après le match.

Pour afficher les numéros de ligne avec des correspondances grep

Lorsque grep imprime des résultats avec de nombreuses correspondances, il est pratique de voir les numéros de ligne. Ajoutez le -n opérateur à n'importe quelle commande grep pour afficher les numéros de ligne.

Nous allons chercher Phoenix dans le répertoire courant, affichez deux lignes avant et après les correspondances avec leurs numéros de ligne.

grep -n -C 2 Phoenix sample

Limiter la sortie de grep à un nombre fixe de lignes

Les fichiers individuels, tels que les fichiers journaux, peuvent contenir de nombreuses correspondances pour les modèles de recherche grep. Limitez le nombre de lignes dans la sortie grep en ajoutant le -m option et un numéro à la commande.

grep -m2 Phoenix sample

Dans ce cas, le terminal imprime les deux premières correspondances qu'il trouve dans le sample fichier.

Si vous ne spécifiez pas de fichier et recherchez tous les fichiers dans un répertoire, la sortie imprime les deux premiers résultats de chaque fichier avec le nom du fichier qui contient les correspondances.


Linux
  1. Comment utiliser la commande Linux grep

  2. Comment utiliser la commande history sous Linux

  3. Comment utiliser la commande Linux history

  4. Comment utiliser la commande Su sous Linux

  5. Comment utiliser la commande d'écran Linux

Comment utiliser la commande sysctl sous Linux

Comment utiliser la commande d'arrêt de Linux

Comment utiliser grep sous Linux

Commande Grep sous Linux/UNIX

Rechercher la commande sous Linux/UNIX

Utilisation de la commande grep sous Linux