Personal tools
You are here: Home Les outils logiciels Unix Unix - Commandes - grep
Navigation
Log in


Forgot your password?
 

Unix - Commandes - grep

recherche de chaînes de caractères

option :

-r, --recursive

Pour chercher la chaine plop dans tous les fichiers du répertoire courant ainsi que dans les sous-répertoires (le caractère . est un chemin relatif qui désigne le répertoire courant) :

 grep -r 'plop' .

 

A noter qu'il ne faut pas utiliser de joker en début et fin de chaine. Ils sont implicites

grep -r '*plop*' .
est ainsi à proscrire


Options :

-i : insensible à la casse
-l : (L minuscule) affiche le nom du fichier au lieu du contenu

grep -r -i 'PLOP' .
grep -r -i 'plop' .
donneront les mêmes résultats


--include : pour un type de fichier
grep -r "scelle" . --include "*.xsd"
Recherche "scelle" dans les fichiers de type "xsd"
 
 
--exclude 'PATTERN' : exclu les fichiers correspondants au PATTERN
grep -lr "ERROR" --exclude '*[0-9][0-9][0-9][0-9][0-9][0-9]*.*' .
grep -lr "ERROR"  --exclude '*20*.*' .
 

Les caractères jokers :
grep -r '201205300.0' .
ou . représente 1 caractère quelconque
grep -r '201205300*0' .
ou * représente N caractères


Combine grep and find (grep xxx only on file extension listed)
eg : find the 'substition' string on file which have an extension *.php
find -iname '*.php' | xargs grep -r 'substitution'


D'autres exemples :

Recherche la chaine NIVA.LV dans les fichiers dont le nom correspond à 20111214*_IE347C*
et l'ensemble des sous répertoires, ceci de façon récursive (-r)

grep -r "NICA.LV" ll 20111214*_IE347C*

 

Recherche la chaine EURO dans les fichiers et l'ensemble des sous répertoires, ceci de façon récursive (-r

)

et copie des fichiers dans le sous-répertoire toto

 

grep -l -r "EURO" . | xargs -i -t cp {} ./toto

.* = N caractères quelconques

grep -r "BASE.*declaration-amq\>" . >~/tmp/fred_ect_douane_20130125_declaration_amq_BASE.log

 

\ = pour échapper un caractère

 

grep -r "\"erreur\"" .

 

Use case pipe to copy results in a output directory :

grep -lr '<string>' . | xargs cp -t <output directory>

Example

grep -lr 'traducteur ENS2ACM' . | xargs cp -t ~/tmp/frixente1540/toto
grep -lr '&#xfffd;' . | xargs cp -p -t ~/tmp/frixente/0402/

 

option : 

-F, --fixed-strings
Interpret  PATTERNS as fixed strings, not regular expressions. 

ex : 

recherche ci-dessous, chaque . est considéré comme un caractere joker. (1 point = 1 caractere).

grep -lr '37.58.115.90'

 ici 

grep -lrF '37.58.115.90'

considere le point comme le caractere à charcher et non plus un joker.

ainsi : 

grep -lrF '37.58.115.90'

est exactement la meme instruction que 

grep -lr '37\.58\.115\.90'

et retourne comme repondant aux criteres, la chaine suivante :

_Part_100837258_1158908485.1674635257251 

 

http://www.funix.org/fr/unix/grep-find.htm

 

Document Actions
« April 2024 »
April
MoTuWeThFrSaSu
1234567
891011121314
15161718192021
22232425262728
2930