ZGREP fichier XML sur une seule ligne

Résolu
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   -  
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   -

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


A voir également:

9 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
$ grep -o '<Numero>[0-9]*</Numero>' fichier
<Numero>43794</Numero>
<Numero>48148357</Numero>
<Numero>43765494</Numero>
<Numero>48148357</Numero>
2
jee pee Messages postés 41561 Date d'inscription   Statut Modérateur Dernière intervention   9 729
 

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
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   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
jee pee Messages postés 41561 Date d'inscription   Statut Modérateur Dernière intervention   9 729
 

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

0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 

hello

quel est le résultat attendu ?

0

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

Posez votre question
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   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
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   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
jee pee Messages postés 41561 Date d'inscription   Statut Modérateur Dernière intervention   9 729
 

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
jee pee Messages postés 41561 Date d'inscription   Statut Modérateur Dernière intervention   9 729
 
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
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   23
 

@jee pee

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


0
jee pee Messages postés 41561 Date d'inscription   Statut Modérateur Dernière intervention   9 729
 

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

0
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   23
 

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


0
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   23
 

Merci beaucoup cela fonctionne.


-1