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 :

Utilisation de grep


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut Utilisation de grep
    Salut,
    je dois chercher tous les fichiers dont le nom contient audubon ou dans lequel se trouve le mot "audubon".
    Pour la première recherche j'ai fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    root@STRI-DB01:~# find / | grep audubon
    ce qui m'a sorti une petite quinzaine de fichier. Donc je pense que c'est bon.

    Par contre je n'arrive pas à écrire la commande GREP pour scanner l'intérieur des fichiers.
    J'ai essayé plusieurs trucs mais ça ne me donne aucun résultat. Je trouve ça plutot louche et je pense que je dois m'y prendre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    root@STRI-DB01:/# grep -l audubon *
    -- pas de résultat --
    root@STRI-DB01:/# grep -l audubon /*
    -- pas de résultat --
    Merci d'avance pour vos conseils.

  2. #2
    Expert confirmé
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Par défaut
    ça va être carrément plus long comme recherche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/bin/sh
     
    for i in $(find / -type f); do
        echo -n "Scanne $i : "
        OUTPUT=$(cat $i|grep audubon)
        if [ ${#OUTPUT} = 0 ]; then
        echo "rien"
        else
        echo "oui"
        fi
    done
    le ${#VAR} permet de tester la longueur de VAR. si c'est 0, alors c'est que grep n'a rien trouvé

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Et pourquoi pas simplement:
    -r pour scanner récursivement le contenu de tous les fichiers du répertoire courant. Tu peux éventuellement y rajouter l'option -i pour rendre la recherche insensible à la casse.

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Par défaut
    avec le find et le grep :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find . -type f -name "*audubon*" -exec grep -H -w audubon {} ;\
    te sort tout les fichiers comportant le mot audubon (mot au sens unix) et dont le nom comporte la chaine audubon.

  5. #5
    Membre Expert

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2004
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 060
    Par défaut
    tu veux chercher une chaine à l'interieur d'un seul fichier ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat fichier | grep chaine

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Par défaut
    Citation Envoyé par chaval
    tu veux chercher une chaine à l'interieur d'un seul fichier ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat fichier | grep chaine
    pourquoi faire un | et un cat ? pour faire gigotter le CPU ?
    tel et la syntaxe donnée dans le man !

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

Discussions similaires

  1. utilisation de grep
    Par Msakeni dans le forum Applications et environnements graphiques
    Réponses: 0
    Dernier message: 20/10/2009, 21h33
  2. Utilisation de grep -v
    Par chtorrel dans le forum AIX
    Réponses: 4
    Dernier message: 09/07/2008, 14h08
  3. [debutant] utilisation de grep
    Par john stedd dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 17/11/2007, 11h14
  4. utiliser commande grep
    Par salim81 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 01/07/2007, 21h52
  5. Problème avec l'utilisation de grep
    Par fgalves dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 07/11/2006, 23h49

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