Recherche récursive en UNIX

bolbo Messages postés 22 Statut Membre -  
 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

  1. 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
  2. Fredish Messages postés 373 Statut Membre 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
  3. bolbo Messages postés 22 Statut Membre 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
  4. hyma Messages postés 13 Statut Membre
     
    penche toi sur AWK
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Fredish Messages postés 373 Statut Membre 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
  7. bolbo Messages postés 22 Statut Membre 2
     
    ok; merci beaucoup.
    Je vais approfondir avec AWK.

    Merci
    0