Commande grep

momsse -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai quelques soucis d'adaptation à la commande grep, puisque beaucoup d'expression rationnelle ont une signification différente (tel que . *), la question est quelle commande doit-je tapper pour effectuer la recherche suivante:

Trouver parmi mes fichiers (dossier HOME) dont le nom commence par point ceux qui contiennent le mot PATH.

J'ai essayé:

$ grep -l PATH ~/[.].*

$ grep^-l PATH ~/[.]*


J'ai parcouru les pages de maanuel, j'essaie d'appliquer les expression rationnelles spécifique à grep, mais c'est presque a chaque fois le fiasco ...
Configuration: Mac PowerPC
Firefox 2.0.0.1

6 réponses

  1. momsse
     
    Ne pas prendre en compte le "^" dans la deuxième commande ...
    0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    ls -a | grep '^\..*PATH.*'
    ;-))
    0
    1. momsse
       
      Merci jipicy !

      N'existe t-il pas de mécanisme de substitution pour les fichiers commencant par un point ? De manière à n'utiliser que grep ?

      Car l'exercice est de n'utiliser que la seule commande grep ...

      Je te remercie pour ta réponse !
      0
    2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Re-

      Le principe de "grep" est de rechercher un motif dans un fichier, ou dans la sortie standard si aucun fichier n'est fourni. Donc pour rechercher dans la sortie standard, il faut un mécanisme qui produise une sortie, d'où le 'ls -a' dans ton cas...

      ;-))
      0
  3. momsse
     
    Comment faire lorsque l'on cherche plusieurs mots à la fois ?

    Ex: chercher avce grep tous les fichiers qui contiennet au moins un des trois mots suivant: papa maman toto ?

    Merci d'avance !
    0
  4. momsse
     
    Merci pour ces précisions !

    Autrement en ce qui concerne la recherche de plusieurs chaine de caractère dans un fichier avec grep ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Il faut utiliser "egrep" (ou "grep -E") comme ceci :
    egrep '(toto|papa|maman)' fichier
    ou
    grep -E '(toto|papa|maman)' fichier
    ;-))
    0
  7. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    Chercher dans tous les fichiers qui commencent par . mais dont le deuxième caractère n'est pas un point:

    grep -l PATH ~/.[!.]*
    0