Maison >Opération et maintenance >exploitation et maintenance Linux >Comment utiliser la commande grep sous Linux ? (explication détaillée)

Comment utiliser la commande grep sous Linux ? (explication détaillée)

青灯夜游
青灯夜游original
2019-03-06 16:12:3522751parcourir

La commande grep dans le système Linux est un puissant outil de recherche de texte. Elle peut utiliser des expressions régulières pour rechercher du texte et imprimer les lignes correspondantes. Sa syntaxe d'utilisation est "grep [options] pattern [files]".

Comment utiliser la commande grep sous Linux ? (explication détaillée)

L'environnement d'exploitation de cet article : système Linux5.9.8, ordinateur Dell G3.

Commande Linux grep

La commande Linux grep est utilisée pour rechercher des chaînes qui remplissent les conditions dans le fichier. Elle peut également être utilisée pour rechercher des fichiers contenant le modèle spécifié ; styles. Il peut utiliser la recherche d'expressions régulières pour rechercher un modèle de chaîne spécifié dans un fichier, répertorier les noms de fichiers contenant des sous-chaînes correspondant au modèle et afficher les lignes de texte contenant la chaîne.

grep fonctionne comme ceci : il recherche un ou plusieurs fichiers pour un modèle de chaîne. Si le modèle contient des espaces, il doit être mis entre guillemets et toutes les chaînes suivant le modèle sont traitées comme des noms de fichiers. Les résultats de la recherche sont envoyés vers la sortie standard sans affecter le contenu du fichier d'origine.

Syntaxe de base :

grep [options] pattern [files]

Paramètres principaux des [options] :

-a ou --text : N'ignorez pas les données binaires.

-Ae40ce79e2df417f76b124a9c092d0ed1 ou --after-context=e40ce79e2df417f76b124a9c092d0ed1 : En plus d'afficher la colonne qui correspond au style du modèle, et d'afficher le contenu après la ligne.

-b ou --byte-offset : Marquez le numéro du premier caractère de la ligne avant d'afficher la ligne qui correspond au style.

-Be40ce79e2df417f76b124a9c092d0ed1 ou --before-context=e40ce79e2df417f76b124a9c092d0ed1 : En plus d'afficher la ligne qui correspond au style, et d'afficher le contenu avant cette ligne.

-c ou --count : Compte le nombre de colonnes correspondant au style.

-Ce40ce79e2df417f76b124a9c092d0ed1 ou --context=e40ce79e2df417f76b124a9c092d0ed1 ou -e40ce79e2df417f76b124a9c092d0ed1 ligne Avant et après le contenu.

-d c0c478a2b113bba92686c59645344e0e ou --directories=c0c478a2b113bba92686c59645344e0e : Ce paramètre doit être utilisé lors de la spécification des répertoires au lieu des fichiers à rechercher, sinon la commande grep rapportera les informations et arrêtera l'action.

-e144db954177ff6cdba977c2cd2085ab1 ou --regexp=144db954177ff6cdba977c2cd2085ab1 : Spécifiez une chaîne comme style de recherche du contenu du fichier.

-E ou --extended-regexp : Utilisez le style comme notation ordinaire étendue.

-f02c041fdf3648d9b505fb98f4d11722d ou --file=02c041fdf3648d9b505fb98f4d11722d : Spécifiez un fichier de règles dont le contenu contient un ou plusieurs styles de règles, permettant à grep de trouver le contenu et les formats de fichier qui répondent aux conditions de la règle. Un style de règle pour chaque ligne.

-F ou --fixed-regexp : Traitez les styles comme une liste de chaînes fixes.

-G ou --basic-regexp : traite le style comme une notation normale.

-h ou --no-filename : N'indiquez pas le nom du fichier auquel appartient la ligne avant d'afficher la ligne qui correspond au style.

-H ou --with-filename : avant d'afficher la ligne qui correspond au style, indique le nom du fichier auquel appartient la ligne.

-i ou --ignore-case : ignore la différence entre les caractères majuscules et minuscules.

-l ou --file-with-matches : répertorie les noms de fichiers dont le contenu correspond au style spécifié.

-L ou --files-without-match : répertorie les noms de fichiers dont le contenu ne correspond pas au style spécifié.

-n ou --line-number : Avant d'afficher la ligne qui correspond au style, indiquez le numéro de colonne de la ligne.

-o ou --only-matching : affiche uniquement la partie PATTERN correspondante.

-q ou --quiet ou --silent : N'affiche aucune information.

-r ou --recursive : L'effet de ce paramètre est le même que la spécification du paramètre "-d recurse".

-s ou --no-messages : Ne pas afficher les messages d'erreur.

-v ou --revert-match : Affiche toutes les lignes qui ne contiennent pas de texte correspondant.

-V ou --version : Afficher les informations de version.

-w ou --word-regexp : affiche uniquement les colonnes qui correspondent à des mots entiers.

-x --line-regexp : affiche uniquement les colonnes qui correspondent à toutes les colonnes.

-y : L'effet de ce paramètre est le même que la spécification du paramètre "-i".

-? : Afficher les lignes correspondantes supérieure et inférieure en même temps ? lignes, telles que : grep -2 pattern filename affiche les lignes supérieure et inférieure de la ligne correspondante en même temps.

Paramètres principaux de l'expression régulière du modèle :

 : Ignorer la signification originale des caractères spéciaux dans l'expression régulière.

^ : correspond à la ligne de départ de l'expression régulière.

$ : correspond à la ligne de fin de l'expression régulière.

abc1f017b4c0d93e8e8063da05f491ff : à la fin de la ligne correspondant à l'expression régulière.

[] : Un seul caractère, tel que [A], c'est-à-dire A répond aux exigences.

[ - ] : plage, telle que [A-Z], c'est-à-dire A, B, C à Z répondent tous aux exigences.

. : Tous les personnages uniques.

* : Il y a des caractères et la longueur peut être 0.

Exemple de code :

Exemple 1 : Dans le répertoire courant, recherchez les fichiers préfixés par le fichier "test" contenant la chaîne "test" et imprimer la ligne de la chaîne. A ce moment, vous pouvez utiliser la commande suivante :

grep test test*

Sortie :

testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行  
testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行  
testfile_2:Linux test #列出testfile_2 文件中包含test字符的行

Exemple. 2 : Recherche inversée, le paramètre "-v" peut être utilisé pour imprimer le contenu des lignes qui ne remplissent pas les conditions. Rechercher les lignes qui ne contiennent pas de test dans les fichiers dont les noms de fichiers contiennent test

grep -v test *test*

Sortie :

testfile1:helLinux!  
testfile1:Linis a free Unix-type operating system.  
testfile1:Lin  
testfile_1:HELLO LINUX!  
testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.  
testfile_1:THIS IS A LINUX TESTFILE!  
testfile_2:HELLO LINUX!  
testfile_2:Linux is a free unix-type opterating system.

相关linux视频教程推荐:《linux语言教程

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

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