English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La commande grep de Linux est utilisée pour trouver des chaînes de caractères correspondantes dans les fichiers.
L'instruction grep est utilisée pour trouver des fichiers contenant un modèle de style spécifique. Si un fichier correspond au modèle de style spécifié, l'instruction grep affiche par défaut la colonne contenant le modèle de style. Si aucun nom de fichier n'est spécifié ou si le nom de fichier fourni est -Si, dans le cas contraire, l'instruction grep lira les données à partir de l'appareil d'entrée standard.
grep [-abcEFGhHilLnqrsvVwxy][-A<nombre de lignes à afficher>][-B<nombre de colonnes à afficher>][-C<nombre de colonnes à afficher>][-d<action à effectuer>][-e<modèle de style>][-f<fichier de modèle>][--help][modèle de style][fichier ou répertoire...]
Paramètres:
-a ou --text Ne pas ignorer les données binaires.
-A<nombre de lignes à afficher> ou --after-context=<nombre de lignes à afficher> Afficher non seulement la colonne correspondant au modèle de style, mais aussi le contenu après cette ligne.
-b ou --byte-offset Indiquer avant l'affichage de la ligne correspondant au style, le numéro du premier caractère de cette ligne.
-B<nombre de lignes à afficher> ou --before-context=<nombre de lignes à afficher> Afficher non seulement la ligne correspondant au style, mais aussi le contenu avant cette ligne.
-c ou --count Calculer le nombre de colonnes correspondant au style.
-C<nombre de lignes à afficher> ou --context=<nombre de lignes à afficher> ou-<nombre de lignes à afficher> Afficher non seulement la ligne correspondant au style, mais aussi le contenu avant et après cette ligne.
-d <action> ou --directories=<action> Utiliser ce paramètre si vous souhaitez rechercher un répertoire au lieu d'un fichier, sinon l'instruction grep rapportera un message et arrêtera l'action.
-e<modèle de style> ou --regexp=<modèle de style> Spécifier une chaîne de caractères comme le style de recherche du contenu du fichier.
-ou --extended-regexp Consulter le style comme une expression régulière étendue.
-f<fichier de règles> ou --file=<fichier de règles> Spécifier le fichier de règles, qui contient une ou plusieurs styles de règles pour que grep trouve le contenu des fichiers correspondant aux règles, format : une règle par ligne.
-ou --fixed-regexp Consulter le style comme une liste de chaînes de caractères fixes.
-ou --basic-regexp Consulter le style comme une représentation normale.
-ou --no-filename Ne pas indiquer le nom du fichier auquel appartient la ligne avant qu'elle ne soit affichée avec le style correspondant.
-H ou --with-filename :Indiquez le nom de fichier avant de montrer la ligne correspondante au style.
-i ou --ignore-case :Ignorer la différence de cas des caractères.
-l ou --file-with-matches :Liste les noms de fichiers dont le contenu correspond au style spécifié.
-L ou --files-without-match :Liste les noms de fichiers dont le contenu ne correspond pas au style spécifié.
-n ou --line-number :Indiquez le numéro de colonne avant de montrer la ligne correspondante au style.
-o ou --only-matching :Ne montre que la partie correspondante PATTERN.
-q ou --quiet ou--silent :Ne montre aucune information.
-r ou --recursive :L'effet de ce paramètre est le même que celui de spécifier"-"paramètres récursifs" sont identiques.
-s ou --no-messages :Ne montre pas d'informations d'erreur.
-v ou --invert-match :Affichez toutes les lignes ne contenant pas le texte de correspondance.
-V ou --version :Affichez les informations de version.
-w ou --word-regexp :Ne montre que les colonnes entières correspondantes.
-x --line-regexp :Ne montre que les colonnes pleines correspondantes.
-y :L'effet de ce paramètre est le même que celui de spécifier"-i"paramètres sont identiques.
1、Rechercher dans le répertoire actuel les fichiers avec l'extension 'file' contenant la chaîne 'test' et afficher la ligne de cette chaîne. Dans ce cas, vous pouvez utiliser la commande suivante :
grep test *file
结果如下所示:
$ grep test test* # Rechercher des fichiers avec le préfixe 'test' contenant la chaîne 'test' testfile1:Ceci est un testfile Linux! # Listes testfile1 Les lignes contenant le caractère 'test' dans le fichier testfile_2:Ceci est un fichier testfile linux! # Listes testfile_2 Les lignes contenant le caractère 'test' dans le fichier testfile_2:Linux test # Listes testfile_2 Les lignes contenant le caractère 'test' dans le fichier
2、Rechercher de manière récursive les fichiers correspondants. Par exemple, rechercher le répertoire spécifié/etc/Tous les fichiers dans acpi et ses sous-répertoires (si des sous-répertoires existent) contenant la chaîne "update", et affichant le contenu de la ligne où cette chaîne se trouve, utilisant la commande suivante :
grep -r update /etc/acpi
Les résultats de la sortie sont les suivants :
$ grep -r update /etc/acpi # Rechercher de manière récursive 'etc'/acpi # Contient des fichiers contenant 'update' /etc/acpi/ac.d/85-anacron.sh:# (Les choses comme slocate updatedb causent beaucoup d'IO.) 而不是 /etc/acpi/resume.d/85-anacron.sh:# (例如 slocate updatedb 会导致很多 IO.) 而不是 /etc/acpi/事件/thinkpad-cmos:action=/usr/sbin/thinkpad-键--更新
3、反向查找。前面各个实例是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。
查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为:
grep -v test *test*
结果如下所示:
$ grep-v test* #查找文件名中包含test 的文件中不包含test 的行 testfile1:helLinux! testfile1:Lin is a free Unix-操作系统类型。 testfile1:Lin testfile_1:HELLO LINUX! testfile_1:Linux 是一个免费的 Unix 系统。-操作系统类型。 testfile_1:THIS IS A LINUX TESTFILE! testfile_2:HELLO LINUX! testfile_2:Linux 是一个免费的 Unix 系统。-操作系统类型。