grep : Afficher les lignes correspondant à un motif donné

Introduction



grep est un programme en ligne de commande de recherche de chaînes de caractères


Syntaxe de la commande



Code BASH :
grep [options] modèle_de_critères [fichier1 ...]



Utiliser grep




Cas simple : filtrer des lignes d'une commande



L'utilisation basique de grep où on souhaite filtrer la sortie d'une commande, avec ici, filtrer que ce qui contient max_input_time :

Code BASH :
cat /etc/php/apache2-php5.6/php.ini | grep max_input_time


La sortie :
Code BASH :
; max_input_time
max_input_time = 300
 


Filtrer des lignes d'un fichier



Dans le cas d'un fichier, on peut le faire qu'avec grep (utilisation d'une seule commande et donc plus "performant" que l'emploi de 2 commandes) :

Code BASH :
grep max_input_time /etc/php/apache2-php5.6/php.ini


La sortie :
Code BASH :
; max_input_time
max_input_time = 300
 


Chercher les occurrences dans tous les fichiers d'un dossier



Si on veut chercher dans des fichiers de manière récursive :

Code BASH :
grep -r max_input_time /etc/php/


La sortie (on remarque qu'on a le nom des fichiers) :
Code BASH :
/etc/php/fpm-php5.6/php.ini:; max_input_time
/etc/php/fpm-php5.6/php.ini:max_input_time = 60
/etc/php/apache2-php5.6/php.ini:; max_input_time
/etc/php/apache2-php5.6/php.ini:max_input_time = 300
/etc/php/cgi-php5.6/php.ini:; max_input_time
/etc/php/cgi-php5.6/php.ini:max_input_time = 60
/etc/php/cli-php5.6/php.ini:; max_input_time
/etc/php/cli-php5.6/php.ini:max_input_time = 60
 



Afficher un fichier de conf sans les commentaires et lignes vides



On utilise ici l'option -v qui affiche le contraire de ce qui est indiqué dans l'expression régulière :

Code BASH :
grep -v -E "(#|^$)" /etc/logrotate.conf



Afficher uniquement ce qui nous intéresse dans la ligne



On va alors utiliser l'option -o qui n'affiche que ce qui correspond.
Exemple ici, n'afficher que les adresses IP du fichier hosts :

Code BASH :
grep -Eo '^([0-9])+.([0-9])+.([0-9])+.([0-9])+' /etc/hosts
Cette page a été vue 14482 fois