ZGREP fichier XML sur une seule ligne

Résolu/Fermé
pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 - 21 déc. 2022 à 10:36
pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 - 22 déc. 2022 à 17:14

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 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
22 déc. 2022 à 13:11
$ 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 40510 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 1 décembre 2024 9 439
21 déc. 2022 à 12:48

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 dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 23
Modifié le 21 déc. 2022 à 14:01

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 40510 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 1 décembre 2024 9 439
21 déc. 2022 à 14:26

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 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
21 déc. 2022 à 14:14

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 dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 23
Modifié le 21 déc. 2022 à 14: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 dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 23
Modifié le 21 déc. 2022 à 14:31

@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 40510 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 1 décembre 2024 9 439
21 déc. 2022 à 14:32

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 40510 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 1 décembre 2024 9 439
21 déc. 2022 à 16:45
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 dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 23
Modifié le 21 déc. 2022 à 14:50

@jee pee

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


0
jee pee Messages postés 40510 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 1 décembre 2024 9 439
21 déc. 2022 à 15:24

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 dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 23
21 déc. 2022 à 16:23

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


0
pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 23
22 déc. 2022 à 17:14

Merci beaucoup cela fonctionne.


-1