Recherche récursive en UNIX

Fermé
bolbo Messages postés 22 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 10 mai 2005 - 26 mai 2004 à 10:23
 vanjo - 6 déc. 2007 à 19:09
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

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 samedi 17 janvier 2004 Statut Membre Dernière intervention 15 juin 2004 19
26 mai 2004 à 11:39
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 mercredi 5 mai 2004 Statut Membre Dernière intervention 10 mai 2005 2
26 mai 2004 à 12:02
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 lundi 17 mai 2004 Statut Membre Dernière intervention 26 mai 2004
26 mai 2004 à 12:46
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 samedi 17 janvier 2004 Statut Membre Dernière intervention 15 juin 2004 19
26 mai 2004 à 13:24
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 mercredi 5 mai 2004 Statut Membre Dernière intervention 10 mai 2005 2
26 mai 2004 à 13:59
ok; merci beaucoup.
Je vais approfondir avec AWK.

Merci
0