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 :

zxgrep récursif dans une arborescence d'archive


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 134
    Points : 65
    Points
    65
    Par défaut zxgrep récursif dans une arborescence d'archive
    Bonsoir à tous,

    j'ai un dossier avec plusieurs dossiers en . zip. Les dossiers décompressé contiennent un fichiers en .zx.

    je cherche à utiliser une ligne de commande pour utiliser une expression régulière dans ces fichiers en mode récursif.

    Voila ce que j'ai pour l'instant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unzip \*.zip | zxgrep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *
    cependant, je n'arrive pas à trouver le mode récursif pour zxgrep.

    Merci d'avance pour l'aide.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 386
    Points
    19 386
    Par défaut
    Bonjour,

    un pipe transmet la sortie standard d'une commande vers l'entrée standard de la commande suivante.

    Or, même si unzip transmettait la liste des fichiers, grep appliquerait la regex sur cette liste, pas les fichiers eux-mêmes.
    en conséquence, il semble qu'il faille faire ce que tu veux en deux étapes : d'abord dézipper les fichiers, puis appliquer la regex sur les fichiers zx.

    as-tu vraiment besoin du mode récursif pour grep ? les fichiers zip contiennent-ils une arborescence ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 134
    Points : 65
    Points
    65
    Par défaut
    Bonjour,

    merci pour le rappel sur pipe.

    Pour ce qui concerne le mode récursif de grep, mon archive dézippé contient plusieurs dossiers avec n fichiers. Et c'est la que je souhaite utiliser ma commande avec le regex.

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 134
    Points : 65
    Points
    65
    Par défaut
    as-tu vraiment besoin du mode récursif pour grep ? les fichiers zip contiennent-ils une arborescence ?
    Oui mes fichiers ont une arborescence et je sèche la sur la commande.

    Si tu peux m'apporter tes lumières

  5. #5
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Dans ce cas une fois que tu as dézippé tes fichiers zip, tu peux utiliser find pour trouver les fichiers zx dans l'arborescence et appliquer ton zxgrep via l'option -exec de find pour chaque résultat. Ça donnerait dans le répertoire d'extraction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -type f -iname '*.zx' -exec zgrep -o 'tapattern' {} \;
    Le {} est un placeholder pour le path du fichier trouvé par find.

    J'ai mis zgrep car je n'ai jamais entendu parler de zxgrep.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 386
    Points
    19 386
    Par défaut
    je ne vois pas de difficulté...

    tu dézippes dans un répertoire provisoire,
    puis un "find -exec zgrep" avec toutes les options pour retrouver les fichiers .zx et y appliquer ton motif,
    et tu détruis le répertoire temporaire.

    edit: grilled.

    edit2: au fait, t'es sûr que c'est zxgrep et pas plutôt xzgrep ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 134
    Points : 65
    Points
    65
    Par défaut
    Pour le format, oui c'est zx et non xz ....

    Voici le résultat de la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -type f -iname '*.zx' -exec zgrep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" * {}\
    Par contre il me retourne a la ligne comme si un argument était manquant, ma règle est pourtant juste non ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 386
    Points
    19 386
    Par défaut
    ta ligne est incorrecte et incomplète :
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  9. #9
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Et prend garde à l'espace avant l'antislash.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  10. #10
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 134
    Points : 65
    Points
    65
    Par défaut
    Et prend garde à l'espace avant l'antislash.
    Satané espace !!

    merci en tous cas pour votre aide

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

Discussions similaires

  1. grep dans une arborescence d'archive
    Par schranz dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 19/02/2019, 19h46
  2. Récursivité dans une arborescence de dossiers...
    Par thony23 dans le forum Langage
    Réponses: 5
    Dernier message: 26/10/2005, 16h14
  3. Repérer un dossier dans une arborescence
    Par Feustine dans le forum Langage
    Réponses: 2
    Dernier message: 11/08/2005, 13h54
  4. Pb d'Ajout un noeud fils dans une arborescence
    Par oramine dans le forum Oracle
    Réponses: 5
    Dernier message: 21/12/2004, 15h39
  5. Suppression d'item dans une arborescence
    Par jonzuzu dans le forum MFC
    Réponses: 2
    Dernier message: 24/02/2004, 17h45

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