Section courante

A propos

Section administrative du site

 Système d'exploitation  Installation  Utilisation  Tutoriel  Programmation  Outils  Annexe  Aide 
Amiga
Apple
CP/M / DOS
CoCo
Cray
Mainframe
Mobile
OS/2
TRS-80
UNIX
Windows
Autres
AmigaDOS
AmigaOS
MorphOS
Apple DOS
System 1.0
System 1.1
System 2.0
System 3.0
System 3.1
System 3.2
System 3.3
System 4.0
System 4.1
System 4.2
System 4.3
System 6.0
System 7.0
System 7.1
System 7.5
System 7.6
Mac OS 8.0
Mac OS 8.1
Mac OS 8.5
Mac OS 8.6
Mac OS 9.0
Mac OS 9.1
Mac OS 9.2
Mac OS X
Mac OS X Server
Apple DOS
Caldera DR-DOS 7
CP/M
CP/M-80
CP/M-86
DOS
DR-DOS
FreeDOS
IBM DOS 4
IBM DOS 5
MS-DOS
PC DOS
PTS-DOS
DR-DOS 5
DR-DOS 6
DR-DOS 7
MS-DOS 1.25
MS-DOS 2.0
MS-DOS 2.11
MS-DOS 3.0
MS-DOS 3.20
MS-DOS 3.21
MS-DOS 3.3
MS-DOS 4
MS-DOS 5
MS-DOS 6
MS-DOS 6.2
MS-DOS 7.10
PC DOS 1.0
PC DOS 1.1
PC DOS 2.0
PC DOS 2.1
PC DOS 3.0
PC DOS 3.1
PC DOS 3.2
PC DOS 3.3
PC DOS 4.0
PC DOS 4.01
PC DOS 5.0
PC DOS 6.1
PC DOS 6.3
PC DOS 7.0
PC DOS 2000
FLEX
OS-9
COS
UNICOS
OpenVMS
OS/390
OS/400
VAX/VMS
z/OS
Android OS
Bada
EPOC
PalmOS
Citrix Multiuser
eComStation
OS/2 Version 1
OS/2 Version 1.1
OS/2 Version 1.2
OS/2 Version 1.3
OS/2 Version 2
OS/2 Version 2.1
OS/2 Warp 3
OS/2 Warp 4
LDOS
MultiDOS
NEWDOS
TRSDOS
AIX
FreeBSD
HP-UX
Linux
QNX
SkyOS
Solaris (SunOS)
UNIX
XENIX
ReactOS
Windows 95
Windows 98
Windows Me
Windows NT 4.0 Server
Windows 2000 Professionnel
Windows 2000 Server
Windows XP
Windows Server 2003
Windows Server 2003 R2
Windows Server 2008
Windows Server 2008 R2
Windows Server 2012
Windows Server 2012 R2
Windows Server 2016
Windows Server 2019
Windows Vista
Windows 7
Windows 8
Windows 10
Windows 11
FLEX
KolibriOS
Inferno
Medos-2
Oberon
Plan 9
p-System
RDOS
CentOS
Corel Linux 1.2
Debian GNU/Linux 7.5
Lindows 4.0.302
openSUSE 11.2
Red Hat Linux 9.0
Red Star Desktop 3.0
TurnKey Core
Ubuntu 9.10
CentOS 6.5
CentOS 7
Installer Python 2.7 pour utilisateur unique sous CentOS 5.8
Introduction
Références des distributions
Références des commandes
Références des fichiers
CentOS
Debian
Fedora
openSUSE
Red Hat Linux
Slackware
TurboLinux
Ubuntu
Utilitaire
Niveau
Catégorie
Déterminer la version
Copier des répertoires
Les partitions
Les groupes
C pour Linux
Pascal pour Linux
AWK
BASH
C Shell
Free Pascal
MySQL
Perl
Python
TCL
Yabasic
Interruption 80h
MobaXterm
putty
Ext2, Ext3 & Ext4
Base de connaissances
Bibliographie
Préface
Notes légal
Dictionnaire
Recherche

grep

Impression d'expression régulière global
Linux Externe

Syntaxe

grep [ -[[AB]]num ][-[CEFGVBchilnsvwx]][-e ] pattern j -ffile ][files... ]

Paramètres

Nom Description
-num Ce paramètre permet d'indiquer le nombre de lignes à rajouter avant et après le résultats.
-A num Ce paramètre permet d'indiquer le nombre de lignes à rajouter après le résultats.
-B num Ce paramètre permet d'indiquer le nombre de lignes à rajouter avant le résultats.
-C num Ce paramètre permet d'afficher le nombre de ligne spécifié à la sortie du contexte.
-b Ce paramètre permet d'afficher au début de chaque ligne le nombre d'octets avant le résultat trouvé.
-c Ce paramètre permet d'indiquer qu'il ne faut pas afficher les résultats habituels, il faut plutôt afficher le nombre de lignes correspondant aux entrées de fichiers.
-e pattern_list Ce paramètre permet d'indiquer l'expression régulière à utiliser.
-f file Ce paramètre permet d'indiquer le masque des fichiers à analyser.
-h Ce paramètre permet d'indiquer qu'il ne faut pas afficher les noms de fichiers lorsqu'il y a plusieurs fichiers de sélectionné.
-i Ce paramètre permet d'indiquer qu'il ne faut pas effectuer de différence entre les minuscules ou les majuscules lors de la comparaison.
-L Ce paramètre permet d'indiquer qu'il ne faut pas afficher les résultats habituels, il faut plutôt afficher les noms de fichiers ayant aucun résultat.
-l Ce paramètre permet d'indiquer qu'il ne faut pas afficher les résultats habituels, il faut plutôt afficher les noms de fichiers ayant des résultats.
-n Ce paramètre permet d'indiquer qu'il faut ajouter à chacune des lignes de sortie un préfixe avec un numéro dans le fichier situé en entrée.
-q Ce paramètre permet d'indiquer qu'il ne faut pas afficher les résultats habituels. On passe en mode silencieux.
-s Ce paramètre permet d'indiquer qu'il ne faut pas afficher les messages d'erreur à propos des fichiers inexistants ou impossible à lire.
-v Ce paramètre permet d'indiquer qu'il faut effectuer une négation des correspondances demandé. Le test est inversé.
-V Ce paramètre permet d'afficher les informations de version de cette commande et quitte immédiatement après.
-w Ce paramètre permet d'indiquer qu'il faut tenir compte que des correspondance d'expression régulière avec un mot complet.
-x Ce paramètre permet d'indiquer qu'il faut tenir compte que des correspondance d'expression régulière contenu sur une seule ligne.
files Ce paramètre permet d'indiquer dans quels fichiers effectuer les recherches.

Description

Cette commande permet d'effectuer la recherche d'une expressions de style ed dans des fichiers.

Remarques

Exemples

L'exemple suivant permet d'effectuer une recherche du texte «montexte» dans le dossier «home» récursivement :

grep -r 'montexte' /home/*

L'exemple suivant permet de rechercher récursivement dans tous les dossiers le mot «gladir» mais uniquement dans les fichiers avec des extensions «.yml» :

grep -r --include "*.yml" 'gladir' .

L'exemple suivant permet d'afficher les 5 lignes précédentes et les 5 lignes suivantes d'où a été trouvé le mot «test» :

grep -A 5 -B 5 "test" monfichier.txt

L'exemple suivant permet de sortir uniquement les lignes contenu des «PHP Fatal error:» contenu dans le fichier «phperror_log» :

grep "PHP Fatal error:" phperror_log

on obtiendra un résultat ressemblant parfois à ceci (très variable d'une machine à l'autre) :

[16-Aug-2013 13:30:28] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 9272 bytes) in /data/www/monprojet/classes/traitementImage.class.php on line 290
[16-Aug-2013 13:35:29] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 9272 bytes) in /data/www/monprojet/classes/traitementImage.class.php on line 1890

L'exemple suivant permet d'obtenir le nombre de fois que contient l'expression «OFFRE DEMPLOI» dans le fichier «data.xml» (même s'il en contient plusieurs fois sur la même ligne) :

grep "OFFRE DEMPLOI" data.xml -roh | wc -w

on obtiendra un résultat semblable a ceci :

24

L'exemple suivant permet de retourner uniquement le nombre au début de la phrase spécifié :

echo "123-ceci est un phrase" | grep -oP "^\d*"

on obtiendra le résultat suivant :

123

Prenons pour acquis le fichier suivant «test.htm» :

  1. <body>
  2. <title>Mon titre</title>
  3. #BEGIN#.....#END#
  4.  
  5. #MULTIBEGIN#
  6. ...
  7. ...
  8. #MULTIEND#
  9. </body>

L'exemple suivant permet de retourner le contenu entre les balises «title» inclusivement :

grep -oP "<title>(.*)</title>" test.htm

on obtiendra le résultat suivant :

<title>Mon titre</title>

L'exemple suivant permet de rechercher le contenu entre les balises «#BEGIN#» et «#END#» en prenant pour acquis qu'ils sont sur la même ligne :

grep -oP "#BEGIN#(.*)#END#" test.htm

on obtiendra le résultat suivant :

#BEGIN#.....#END#

L'exemple suivant permet de rechercher le contenu entre les balises «#BEGIN#» et «#END#» en prenant pour acquis qu'ils sont sur plusieurs lignes :

grep -Pzo "#MULTIBEGIN#(.|\n)*^#MULTIEND#" test.htm

on obtiendra le résultat suivant :

#MULTIBEGIN#
...
...
#MULTIEND#

Voir également

Système d'exploitation - Linux - Références de commandes et de programmes - egrep
Système d'exploitation - Linux - Références de commandes et de programmes - fgrep
Système d'exploitation - Linux - Références de commandes et de programmes - sed
Système d'exploitation - Linux - Références de commandes et de programmes - sh

PARTAGER CETTE PAGE SUR
Dernière mise à jour : Vendredi, le 1 janvier 2016