Maison >Opération et maintenance >exploitation et maintenance Linux >Explication complète de l'utilisation de la commande grep sous Linux
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 '^;|^$' /usr/local/php/etc/php.iniIl 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!