Recherche récursive en UNIX

bolbo Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
 vanjo -
Bonjour,

Bonjour,

Je cherche actuellement à faire n petit script permettant de rechercher une chaine de caractère dans l'ensemble des fichiers de mon serveur.

Avec
find . -name index.php -print
j'arrive a trouver les noms de fichiers, mais moi je souhaiterai trouver un mot dans ces fichiers.
Je pense que ca doi etre faisable avec des pipe , grep et find, mais je sais pas trop comment.


Il faudrait par exemple reussir a trouver une adresse mail dans l'ensemble des fichier, se trouvant dans divers répertoires et sous répertoires.

Merci d'avance.
Bolbo

6 réponses

vanjo
 
Et voilà la solution :

find / -name "*" -exec grep -l mail {} \; 2>/dev/null

Le / pour la racine de ton serveur
Le "*" pour tous les fichiers de ton serveur
mail = la chaine de caractéres à rechercher

Tu peux faire la commande également sans le -l

find / -name "*" -exec grep mail {} \; 2>/dev/null

Avec un peu de retard....
10
Fredish Messages postés 373 Date d'inscription   Statut Membre Dernière intervention   19
 
Tu voudrais quoi en sortie? L'adresse email ou le nom des fichiers contenant cette adresse email?

Parce que si c'est juste le nom des fichiers, tu fais:

grep -r email@email /


Sinon ca risque d'être un peu plus complexe; je vais essayer de m'y coller. Asevere va certainement pouvoir te donner une réponse, en tout cas.
4
bolbo Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci de ta réponse.
J'ai essayé le code que tu m'as donné,
grep -rn chaine_a_trouver *
et ca marche bien.

Maintenant, je voudrais savoir si c'est possible de faire un script qui remplace les occurences de la chaine chaine_a_trouver par une chaine new_chaine?

Le but c'est surtout de pouvoir modifier des adresses maill sur tous les sites web que je gère, sans avoir a editer un par un les fichiers.
Merci

Bolbo
1
hyma Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
penche toi sur AWK
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fredish Messages postés 373 Date d'inscription   Statut Membre Dernière intervention   19
 
Quand je disais: " L'adresse email ou le nom des fichiers contenant cette adresse email?", c'etait l'adresse email et les noms de fichiers.

Pour ta deuxième question, je vois pas. Je connais pas awk. Je sais qu'on peut le faire sous vi, avec un seul fichier; mais dans plusieurs, il faudrait un autre outil que je ne connais pas.
0
bolbo Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   2
 
ok; merci beaucoup.
Je vais approfondir avec AWK.

Merci
0