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 :

lister les fichiers contenant le mot PRINT non précédé d'un dièse ?


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 347
    Par défaut lister les fichiers contenant le mot PRINT non précédé d'un dièse ?
    bonjour,

    je me prends la tête pour trouver un moyen de lister tous les fichiers d'un répertoire, contenant des lignes de codes contenant le mot "print....." mais uniquement celle qui ne contiennent pas de # (dièse) avant le print ! (car c'est un commentaire)

    quelqu'un a-t-il une astuce ?

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 676
    Par défaut
    Je dirais, un peu facilement sans doute, tuber deux grep
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -Rl print /ton/répertoire | grep -v \#
    ...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Bonjour,
    Citation Envoyé par N_BaH Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -Rl print /ton/répertoire | grep -v \#
    ...
    ?
    Ça ne devrait pas marcher : le second grep devrait ne renvoyer que les fichiers ayant print et aucun commentaire (mais il semble y avoir autre chose qui coince en plus, je n'ai pas identifié quoi...).

    Il vaudrait mieux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -lR "^[^#]*print" .

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 347
    Par défaut ok
    merci à tous de votre aide, seulement j'ai oublié un ptit détail de poids...

    est-il possible d'afficher aussi la ligne ?
    car les fichiers ont plusieurs centaines de lignes...

  5. #5
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Citation Envoyé par USA Mike Voir le message
    est-il possible d'afficher aussi la ligne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -R -H "^[^#]*print" .
    • l'option -l forçait grep à n'imprimer que les noms de fichiers => enlevée
    • l'option -H force grep à mettre le nom de fichier devant la ligne correspondante (ça peut servir)

  6. #6
    DIE
    DIE est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 101
    Par défaut
    en AWK j'ai essayé comme ça pour afficher le numéro de ligne
    plus les lignes qui ne commencent pas par # suivi qq part de print

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '$0 !~ /^#.*print/ {printf NR " "; print}' *

  7. #7
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 676
    Par défaut
    Bien sûr, que ça ne peut pas fonctionner, puisque que le premier grep ne sort que la liste des fichiers !

    Désolé.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

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

Discussions similaires

  1. [XL-2003] Lister les fichiers protégés par mot de passe
    Par macat dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/10/2010, 11h04
  2. [XL-2003] lister les fichiers contenant des liens
    Par ouisansdoute dans le forum Excel
    Réponses: 1
    Dernier message: 11/06/2010, 17h26
  3. lister les fichiers non utilisés
    Par need2learn dans le forum Apache
    Réponses: 2
    Dernier message: 30/11/2008, 21h36
  4. Trouver les fichiers contenant un mot avec FINDSTR
    Par soazig dans le forum Windows XP
    Réponses: 4
    Dernier message: 26/04/2007, 14h29
  5. Lister les fichiers du répertoire contenant une applet
    Par uncle bobo dans le forum Applets
    Réponses: 1
    Dernier message: 05/05/2006, 16h55

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