ZGREP fichier XML sur une seule ligne

Résolu
pcsystemd Messages postés 734 Statut Membre -  
pcsystemd Messages postés 734 Statut Membre -

Bonjour,

J'ai un fichier XML  "file.zip" qui contient du XML sur une seule ligne comme suit :

<?xml version="1.0"  encoding="iso-8859-15" standalone="yes" ?><version="1.1">
<Numero>43794</Numero><DateE>2022-05-03</DateE><DateUp>2022-12-01</DateUp><Stat>0</Stat><Datetrait>0000-00-00</Datetrait></Bi><Bi><Co>354589</Co><Numero>48148357</Numero><Numero>43765494</Numero><DateE>2022-08-03</DateE><DateUp>2022-10-01</DateUp><Stat>0</Stat><Datetrait>0000-00-00</Datetrait></Des><Dilite><![CDATA[Immate]]></Dilite></Bi><Bi><Co>354589</Co><Numero>48148357</Numero>

Je souhaite faire un ZGREP de façon a ne sortir comme résultat que les balises 

<Numero></Numero>

Le souci c'est que c'est une fichier XML sur une seule ligne donc si je fais un ZGREP normal il me sort le fichier entier puisque c'est une seule ligne.

J'ai testé cela : 

zgrep '<Numero>' file.zip| sed -e 's/.*<Numero>\(.*\)<\/Numero>.*/<Numero>\1<\/Numero>/g'

Mais cela ne fonctionne pas!

Une idée?

Merci


Linux / Chrome 108.0.0.0


L'accès au savoir est la première liberté que chaque homme devrait avoir.

9 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    $ grep -o '<Numero>[0-9]*</Numero>' fichier
    <Numero>43794</Numero>
    <Numero>48148357</Numero>
    <Numero>43765494</Numero>
    <Numero>48148357</Numero>
    
    2
  2. jee pee Messages postés 31928 Date d'inscription   Statut Modérateur Dernière intervention   9 994
     

    Bonjour,

    Tu rajoutes un saut de ligne

    cat fic5.txt|grep '<Numero>'|sed -e 's/<Numero>/\n<Numero>/g'|sed -e 's/.*<Numero>\(.*\)<\/Numero>.*/<Numero>\1<\/Numero>/g'

    0
  3. pcsystemd Messages postés 734 Statut Membre 23
     

    Merci mais cela ne fonctionne pas même en ajoutant le paramètre  grep -a!

    cat file.xml|grep '<Numero>'|sed -e 's/<Numero>/\n<Numero>/g'|sed -e 's/.*<Numero>\(.*\)<\/Numero>.*/<Numero>\1<\/Numero>/g'
    Fichier binaire (entrée standard) correspondant

    0
    1. jee pee Messages postés 31928 Date d'inscription   Statut Modérateur Dernière intervention   9 994
       

      le message semble indiquer que le fichier en entrée est en binaire, tu as bien dézippé file.zip ?

      0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     

    hello

    quel est le résultat attendu ?

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. pcsystemd Messages postés 734 Statut Membre 23
     

    Salut,

    Le résultat attendu est de compter le nombre de balises <Numero></Numero>

    <Numero>43794</Numero>
    <Numero>48148357</Numero>
    <Numero>43765494</Numero>
    <Numero>48148357</Numero>
    etc..

    qu'il y a dans un fichier XML a plat sur une seule ligne et qui est zippé.

    Merci


    0
  7. pcsystemd Messages postés 734 Statut Membre 23
     

    @jee pee

    Oui bien sur j'ai dezippé le fichier.

    file.xml: XML 1.0 document, Non-ISO extended-ASCII text, with very long lines, with CRLF, LF, NEL line terminators

    0
    1. jee pee Messages postés 31928 Date d'inscription   Statut Modérateur Dernière intervention   9 994
       

      je n'ai pas d'autre idée, cela fonctionne pour moi

      cat fic5.txt|grep '<Numero>'|sed -e 's/<Numero>/\n<Numero>/g'|sed -e 's/.*<Numero>\(.*\)<\/Numero>.*/<Numero>\1<\/Numero>/g'
      
      <Numero>43794</Numero>
      <Numero>48148357</Numero>
      <Numero>43765494</Numero>
      <Numero>48148357</Numero>
      
      0
    2. jee pee Messages postés 31928 Date d'inscription   Statut Modérateur Dernière intervention   9 994
       
      fic5.txt: XML 1.0 document, ASCII text, with very long lines
      

      c'est peut être le type des fins de ligne, il est indiqué 3 types différents

      0
  8. pcsystemd Messages postés 734 Statut Membre 23
     

    @jee pee

    Ok merci. Je continue a chercher et si je trouve je viens poster la solution.


    0
    1. jee pee Messages postés 31928 Date d'inscription   Statut Modérateur Dernière intervention   9 994
       

      donne ton fichier zippé de test sur cjoint.com pour voir avec le même contenu que toi

      0
  9. pcsystemd Messages postés 734 Statut Membre 23
     

    Je ne peux pas ce sont des données confidentielles de clients. Mais merci.


    0
  10. pcsystemd Messages postés 734 Statut Membre 23
     

    Merci beaucoup cela fonctionne.


    -1