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 :

Repérer une balise XML dans une archive : problème avec zipgrep


Sujet :

Shell et commandes GNU

  1. #1
    Membre expérimenté
    Avatar de VforVincent
    Homme Profil pro
    Doctorant (EPUB 3.0)
    Inscrit en
    Avril 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Doctorant (EPUB 3.0)
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 115
    Par défaut Repérer une balise XML dans une archive : problème avec zipgrep
    Bonjour,

    Je ne maîtrise pas bien le shell, bash, ou autre joyeuseté de ce type. En fouinant à droite à gauche sur le net, je pensais avoir trouvé la solution à mon problème.

    Je devais parcourir dans un répertoire et tous les sous-répertoires, les fichiers .epub (ce sont des zip dont l'extension change, mais c'est tout), et détecter la présence de la balise "<svg>".

    Je fais un test sur 10 fichiers, ok, les résultats me semblent bons. J'applique.... j'ai pas l'impression que ce soit bon. Je crois que le matching porte sur les noms des fichiers contenus dans le .epub, et non dans les fichiers. Normalement, un zipgrep regarde le contenu non ?!

    Si quelqu'un peut m'aider, ce serait super !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #! /bin/bash
     
    REP_SOURCE="../sauvegarde"
     
    find ${REP_SOURCE} -name '*.epub' | while read element ; do
    FICHIER=${element##*\/}
    CHEMIN=${element%\/*}
     
    nbsvg=`zipgrep -li '<svg>' $element`
    echo -e ${FICHIER}'\t'$nbsvg >> ../../../../verifsvg.txt
     
    done
    N'hésitez pas à critiquer mon code ! Je suis à l'écoute du moindre conseil (pour éviter de revenir trop rapidement vous embêter...).

    EDIT : désolé pour les fautes de français.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Euh... et est-ce qu'un simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find ${REP_SOURCE} -name '*.epub' -exec zipgrep -li '<svg>' {} \;
    Ne ferait pas l'affaire ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 635
    Par défaut
    Bonjour,

    Je crois que le matching porte sur les noms des fichiers contenus dans le .epub, et non dans les fichiers.
    qu'est-ce qui te fait croire ça ?

    qu'affiche ton script ?
    que devrait-il afficher ?

    a priori, relis la page de man de grep, pour trouver les options correctes.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Membre expérimenté
    Avatar de VforVincent
    Homme Profil pro
    Doctorant (EPUB 3.0)
    Inscrit en
    Avril 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Doctorant (EPUB 3.0)
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 115
    Par défaut
    Ce sont mes résultats qui me font dire ça effectivement. Je n'ai aucun résultat.

    J'ai lu les options de grep -e (je les ai même dans mon script pour ne pas les oublier), et normalement un zipgrep doit mather le motif dans les fichiers.

    Pourtant, si je modifie le motif en 'svg', il me sort tous les fichiers contenus dans les .epub qui ont l'extension .svg. Alors oui, évidemment, les fichiers svg ont une balise <svg> à l'intérieur. D'où mon hésitation.

    Et d'autant plus que j'ai mis un fichier .epub contenant des XHTML avec à l'intérieur des balises <svg>, et qui ne sont pas détectées...

    Après, je suis débutant, et donc il y a sûrement une erreur de noob que j'ai du faire... Est-ce que l'encodage du script joue par exemple ? Parce que bon, j'ai fait le script sous windows, et il était encodé en ANSI...

    Oui je sais, faire un script bash sous Windows pour aller l'exécuter sous Mac OS après, c'est très intelligent

Discussions similaires

  1. insérer un forum dans une page css dans une balise div
    Par scoubi77 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 08/07/2012, 21h31
  2. Comment transformer une balise xml dans une requete xsl:for-each
    Par Max1000p dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 07/06/2012, 09h46
  3. [XML][PHP]Extraire balise img dans une balise xml
    Par thierry232323 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 17/10/2006, 13h25
  4. [XSLT] Comment inclure une balise xsl dans une balise html
    Par sylsau dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 13/10/2006, 09h33
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

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