Maison  >  Article  >  Opération et maintenance  >  Explication complète de l'utilisation de la commande grep sous Linux

Explication complète de l'utilisation de la commande grep sous Linux

齐天大圣
齐天大圣original
2020-09-16 16:12:303421parcourir

Lors de l'apprentissage du système Linux, vous devez maîtriser la commande grep. La commande grep est utilisée pour rechercher des lignes correspondantes dans des fichiers ou une sortie standard. Sa puissance réside dans le fait qu'elle prend en charge les expressions régulières. Dans le travail quotidien, grep est certainement l'une des commandes les plus utilisées.

Remarque : cet article présente uniquement l'utilisation de grep et n'introduit pas les expressions régulières.

Jetons un coup d'œil à certaines de ses options courantes et à leurs significations :

Options

  • -i Ignorer la casse lors de la recherche

  • -n Liste toutes les lignes correspondantes, affiche le numéro de ligne

  • -v Sélection inversée

  • -c Afficher uniquement le nombre de lignes correspondantes

  • -l Répertorier uniquement les noms de fichiers qui correspondent, ne pas répertorier les lignes correspondantes spécifiques

  • -h Faire ne pas afficher les noms de fichiers lors de l'interrogation de plusieurs fichiers

  • -r Recherche récursive

  • -q Désactiver la sortie de tous les résultats, l'état quitté indique la recherche Est-ce réussi ?

  • --color=auto Afficher les mots-clés trouvés en couleur

  • -E, --extended-regexp PATTERN Oui Un régulier extensible expression (abrégé en ERE)

  • -B, --before-context=NUM Imprimer NUM lignes commençant par du texte

  • -A, - -after-context=NUM Imprimer NUM lignes se terminant par du texte

Voici quelques utilisations de grep :

Nous savons que php .ini a une configuration de fuseau horaire. Les détails. ne sont pas clairs. Je ne connais que le fuseau horaire. Maintenant, si nous voulons trouver les informations de configuration, nous pouvons utiliser grep pour trouver

# 加上-i选项,忽略大小写
# grep -i timezone /usr/local/php/etc/php.ini 
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = PRC

grep prend en charge la recherche dans plusieurs fichiers

# 这里我们加上-n选项,输出文件的行号
# grep -in stdio itoa.c quicksort.c 
itoa.c:2:#include <stdio.h>
quicksort.c:1:#include <stdio.h>

La sélection inversée -v. est utilisé. Lorsque j'exécute un programme et que je veux voir si le programme existe toujours dans le processus, je peux utiliser la méthode suivante

# ps aux | grep curl.php 
root     14374 98.3  1.2 277844 12396 pts/0    R+   07:54   1:07 php curl.php
root     14404  0.0  0.0 112664   984 pts/2    R+   07:55   0:00 grep --color=auto curl.php

Il y a un problème ici, nous devons utiliser -v pour filtrer. le processus de grep lui-même

# ps aux | grep curl.php | grep -v grep 
root     14374 98.5  1.2 277844 12396 pts/0    R+   07:54   2:36 php curl.php

Nous voulons compter le nombre de lignes contenant root dans la dernière commande, nous devons donc utiliser l'option -c ici.

# last | grep -c root
353

Nous avons souvent ce genre de demande. Nous devons remplacer certains textes dans des fichiers par lots. Alors, comment savoir dans quels fichiers se trouvent ces textes. Grep peut le faire, avec l'option -l

# find . -type f -exec grep -l define {} \;
./find.c
./itoa2.c
./wc.c
./test.c
./wordcnt.c
./longestline.c
./cal.c
./sortline2.c
./sortline.c
./found.c
./atof.c

Regardons un autre exemple Cet exemple utilise l'expression régulière étendue -E Nous voulons filtrer les lignes de commentaires et les lignes vides dans le fichier php.ini <.>

grep -vE &#39;^;|^$&#39; /usr/local/php/etc/php.ini

Il existe également une option -r couramment utilisée, qui peut être utilisée pour rechercher de manière récursive tous les fichiers du répertoire actuel et des fichiers du sous-répertoire. Ensuite, nous voulons vérifier quels fichiers de pied de page se trouvent dans le répertoire du site Web. Nous pouvons utiliser la commande suivante pour trouver

grep -rn footer ./
.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn