Les Allergies
Alimentaires
Posez votre question Signaler

Recherche récursive en UNIX

bolbo 22Messages postés 5 mai 2004Date d'inscription - Dernière réponse le 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
Lire la suite 

Recherche récursive en UNIX »

6 réponses
Réponse
+4
moins plus
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....
Ajouter un commentaire
Réponse
+3
moins plus
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.
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
penche toi sur AWK
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
ok; merci beaucoup.
Je vais approfondir avec AWK.

Merci
Ajouter un commentaire
Ce document intitulé « Recherche récursive en UNIX » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?