IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Recherche fichier avec grep


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 161
    Par défaut Recherche fichier avec grep
    Bonjour,

    Savez-vous comment rechercher des fichiers dans un autre répertoires avec grep ?

    Je m'explique

    je cherche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -i -l "motifs de recherche" /usr/local/bin/*
    grep me retourne des noms de fichier, mais comment rediriger le flux pour rechercher ces noms de fichier dans un autre répertoire en l'occurrence /root

    J'avais penser à:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -i -l "motifs de recherche" /usr/local/bin/* | find /root -type f -print
    mais ca marche pas

    Je vous remercie

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    C'est presque ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /root -type f -exec grep -li "motifs de recherche" {} \;
    Ca veut dire : pour chaque fichier trouvé dans /root et en dessous, execute la commande grep -li "motifs de recherche". {} correspond au fichier trouvé par find. \; est le délimiteur pour indiquer la fin de la séquence -exec.

    Sinon, le grep GNU a une option -R ou -r pour faire une recherche récursive sur les sous-répertoires, je crois.

  3. #3
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Si j'ai bien compris, tu cherches à savoir quels sont les fichiers présents dans /usr/local/bin qui sont également présent dans /root ? Si c'est bien le cas, diff permet de faire ce que tu veux.

    Et si ce n'est pas le cas, et que la réponse de _Mac_ ne résout pas non plus ton problème, essaye de nous donner un exemple.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Effectivement, je n'avais pas bien lu. Dans ce cas, c'est effectivement plus compliqué. Si tu ne fais pas de recherche dans les sous-répertoires, tu dois pouvoir faire simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd /root
    find . -type f -exec grep -li "motifs de recherche" /usr/local/bin/{} \;
    Mais si tu veux rechercher dans tous les sous-répertoires, etc. là, c'est chaud, faut sûrement faire une boucle.

  5. #5
    Membre émérite Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Par défaut
    Un peu lourd, mais ça marche (en bash)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    grep -Rl "motifs de recherche" /usr/local/bin | \
    while read file ; do
    	Basefile=$(basename $file)
    	find /root -name $Basefile -ls
    done

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 161
    Par défaut
    Merci pour vos réponses, je test dès que j'ai un moment.

    Je met en résolut.

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rechercher fichiers avec un ou plusieurs groupes de mots
    Par Boubas1 dans le forum Windows XP
    Réponses: 6
    Dernier message: 23/09/2008, 23h04
  2. Recherche compliquée avec grep
    Par Bazunga dans le forum Linux
    Réponses: 7
    Dernier message: 10/07/2008, 16h08
  3. erreur de recherche fichier avec getfile
    Par marbuly dans le forum Modélisation
    Réponses: 2
    Dernier message: 13/09/2007, 19h58
  4. Rechercher un crochet avec grep
    Par le mage tophinus dans le forum Linux
    Réponses: 2
    Dernier message: 27/05/2005, 14h17
  5. Rechercher dans un fichier avec emacs
    Par ggnore dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 24/11/2004, 10h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo