Anonim

L’expression régulière globale ou simplement grep est l’une des commandes les plus polyvalentes et les plus courantes des systèmes Unix et Linux. La commande recherche un ou plusieurs fichiers d'entrée et les lignes de modèle correspondantes. En conséquence, vous obtenez une sortie standard avec les lignes correspondantes.

Si vous ne spécifiez pas de fichier, grep utilise l'entrée standard pour les lectures et il s'agira très probablement de la sortie d'une autre commande. Dans l’ensemble, grep présente une syntaxe simple, que vous l’utilisiez avec ou sans le nom du fichier.

Cet article fournit un aperçu rapide de la syntaxe grep et quelques commandes de base que vous pouvez utiliser avec ou sans le nom du fichier.

Avant de commencer

Toutes les commandes grep suivent la même syntaxe et chaque paramètre a une fonction spécifique. Voici la ligne d'échantillon:

GREP MOTIF

Vous pouvez utiliser plusieurs options dans grep pour contrôler le résultat de la commande. Le nombre commence à zéro. PATTERN indique le modèle de recherche que vous souhaitez appliquer. En ce qui concerne le fichier, il s’agit du ou des noms de fichier, mais le paramètre peut être défini sur zéro.

Recherche de chaîne dans la sortie de la commande

Comme indiqué, vous n'avez pas besoin d'utiliser des fichiers d'entrée spécifiques. La sortie d'une autre commande peut être utilisée dans grep pour obtenir des lignes correspondant exactement à un modèle. Ceci peut être utilisé pour déterminer quels processus sont actifs sur le système. Voici un exemple de syntaxe de commande:

$ ps -ef | grep www-data

Le résultat obtenu devrait ressembler à ceci:

www-data 18247 12675 4 16:00? 00:00:00 php-fpm: piscine www
root 18272 17714 0 16:00 pts / 0 00:00:00 grep –color = auto –exclude-dir = .bzr –exclude-dir = CVS –exclude-dir = .git –exclude-dir = .hg –exclude- dir = .svn www-data
www-data 31147 12770 0 Oct22? 00:05:51 nginx: processus de travail
www-data 31148 12770 0 octobre 22? 00:00:00 nginx: processus du gestionnaire de cache

Il existe un moyen d'exclure la ligne de commande qui présente les processus grep. Pour cela, vous devez utiliser le paramètre $ ps -ef | grep www-data | grep -v grep commande.

Grep Recherche par mot

Vous pouvez utiliser les commandes grep pour rechercher des mots spécifiques dans les fichiers de votre système. En fait, il n'est pas nécessaire de taper un mot entier. Vous pouvez simplement utiliser gnu, par exemple, et la commande affiche tous les mots contenant ces trois lettres. La syntaxe de la commande est la suivante:

$ grep gnu / usr / share / words

Après avoir exécuté la commande, votre sortie devrait ressembler à ceci:

cygnus
gnou
interrègne
lgnu9d
lignum
magnum
magnuson
sphaigne
écrou papillon

D'autre part, vous pouvez rechercher uniquement ce mot ou cette chaîne de lettres et exclure tout le reste. Pour cela, vous devez ajouter -w ou -word-regexp à la syntaxe. Dans ce cas, la commande exemple ressemble à ceci: $ grep -w gnu / usr / share / words .

Remarque: Pour des raisons de grammaire, certaines commandes sont complètement arrêtées à la fin. Vous n'avez pas besoin de ce signe de ponctuation pour grep. Excluez-le lorsque vous copiez / collez la commande.

Grep est-il sensible à la casse?

Toutes les commandes grep sont sensibles à la casse par défaut. Cela signifie que l'utilisation des caractères minuscules et majuscules fait une différence dans la commande elle-même. Cependant, vous pouvez ajouter - i ( - ignore - case ) à la ligne de commande et autoriser le système à rechercher des mots majuscules et minuscules.

Par exemple, votre commande d'entrée peut ressembler à ceci: $ grep -i Zebra / usr / share / words . Il permet à la sortie de correspondre à n’importe quelle combinaison de lettres majuscules et minuscules lorsqu’elle recherche un zèbre.

Numéros de ligne

Utilisez l'option –line-number ou simplement -n pour déterminer le nombre de lignes avec une chaîne correspondant à un modèle de recherche particulier. En conséquence, vous obtenez une sortie standard avec un numéro de ligne devant elle.

La commande exacte peut ressembler à ceci: $ grep -n 10000 / etc / services . Lors de l'exécution, la sortie fournit toutes les correspondances trouvées sur 10 000 lignes. Découvrez l'exemple ci-dessous:

10423: ndmp 10000 / tcp
10424: ndmp 10000 / udp

Fichiers dans les dossiers

Vous pouvez mettre un astérisque derrière une commande grep au lieu d'un nom de fichier. En utilisant à nouveau les critères gnu, la commande ressemble à ceci: $ grep gnu * et la sortie répertorie les fichiers contenant gnu . Il est important de noter que ce type de commande renvoie une ligne.

Remarque: avec grep, une ligne fait référence à une séquence de caractères allant jusqu'à un saut spécifié. Sauf si vous affinez la recherche, la sortie peut contenir des paragraphes entiers d'informations.

Passez à l'étape suivante avec Grep

Ce guide ne fait qu'effleurer ce que vous pouvez faire avec grep. Cela prend peut-être un peu de temps, mais la syntaxe suit un principe assez simple. Et avec un peu de pratique, vous pourrez affiner vos recherches à la perfection, avec ou sans le nom du fichier.

Comment grep sans le nom de fichier