10
06
2009

Trouver une chaine dans des fichiers

Voici quelques commandes bash qui permettre de trouver une chaine contenue dans les fichiers d'un répertoire (utile par exemple pour trouver quels fichiers ont été infectés par le virus Gumblar :D)

La solution la plus simple est rgrep, mais qui n'est pas installé par défaut.


rgrep 'chaine' /arborescence

Sinon, vous avez la solution avec grep.
Cette méthode n'affiche que le fichier concerné


grep -lir "chaine" /arborescence

Cette méthode affiche le fichier concerné, la ligne ou la chaine à été trouvée, et la chaine trouvée :


grep -oHnr "chaine" /arborescence

Sinon, la méthode indiquée par Arkezis, toujours avec grep :


grep "chaine" **/*

Ou la solution avec find :


find /arborescence -name "*extension_du_fichier" -exec grep -l "chaine" {} \;

Enfin, limiter la recherche à certaines extensions :


for i in `find /arborescence -type d`; do grep "chaine" $i/*.{txt,log}; done 2>/dev/null

Parfois très utile ! :)

Share/Save/Bookmark

2 Comments so far ...


  1. Arkezis

    Arkezis says:

    Jul. 14, 2009, 12:28 PM

    Ou bien encore :

    grep 'chaine' **/*

  2. Cyril

    Cyril N. says:

    Jul. 14, 2009, 01:19 PM

    Parfait ! Je le rajoute :)

Add a comment