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 ! :)

Filed under  //  Development   Scripts   Unix/Linux   bash   chaine   fichier   find   folder   recursive   repertoire   rgrep   récursif   shell   string   trouver  
Posted by Cyril Nicodème 

Astuce : Supprimer récursivement les répertoires .svn

Une petite commande bien utile donnée par CrainBrandy qui permet de supprimer récursivement tous les répertoires .svn en commençant par un dossier.

Je suis sûr que vous avez déjà été confrontés à ce genre de problème ! :p

rm -rf `find . -type d -name .svn`

ou vous pouvez aussi faire :

find . -type d -name .svn -exec rm -rf {} \;

à vous de choisir votre méthode préférée.

Filed under  //  Development   Scripts   Unix/Linux   bash   commande   dossier   linux   repertoire   récursif   récursivement   shell   supprimer   svn  
Posted by Cyril Nicodème