[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: fichier tableur xml



Le 11 mars 2016 à 02:26, Bernard Schoenacker <bernard.schoenacker@free.fr> a écrit :
> 
> Le Thu, 10 Mar 2016 21:24:42 +0100,
> Pierre Malard <plm@teledetection.fr> a écrit :
> 
>> Et un truc du genre :
>> 	sed -i ’s/\/*<block>}/,/g’
>> ça ne fonctionnerait pas ?
> 
> bonjour,
> 
> merci pierre pour le résultar qui ne fonctionne pas
> 
> pour ma part avec 2 passes c'est bon :
> 
> sed -i 's/<block>/,/g' raw |sed -i  's/<\/block>/,/g'
> 
> mais j'eusse préféré quelque chose dans le style :
> 
> sed -i 's/<block>/,/g' 's/<\/block>/,/g' raw
> 
> mais la 2e ne passe pas du fait qu'il manque un caractère de séparation
> mais lequel?
> 
> ci joint le fichier raw
> 
> slt
> bernard<raw>

Je n’avais pas bien compris ton problème. En fait, tu ne veux pas seulement transformer les blocs « <block> » et « </block> » en virgule. Dans ce cas, le script :
	sed -i 's/<\/*block>/,/g’ FICHIER
fonctionne parfaitement.

Ce que tu veux, c’est transformer un XML en CSV, c’est à dire transformer tes fameux blocs en virgule. Mais pas seulement les blocs mais aussi le passage à la ligne précédent. Un truc du genre :
	sed -i ’s/FIN_LIGNE*<\/*block>/,/g’ FICHIER
ça, ça ne fonctionne pas parce que sed, comme ed, est un simple « éditeur de ligne ». Il ne traite que la ligne, pas plus.
Il faudrait mettre en buffer les données jusqu’à trouver le déclencheur voulu pour faire un traitement comme tu le désire. Un langage comme « awk » me semble mieux adapté pour ça.

Comme je suis un grand fainéant et que j’ai horreur de refaire ce qui a déjà été très bien fait, j’aurais tendance à te conseiller l’excellente lecture du blog de Stéphane Bortzmeyer qui traite du sujet :
	http://www.bortzmeyer.org/xml-to-csv.html

Cordialement


--
Pierre Malard

  « La mondialisation de l'économie a, « en moyenne », eu pour conséquence
     l'augmentation du niveau de vie « moyen ».
     Un homme avec la tête dans un four et les jambes dans un congélateur a,
     « en moyenne », une température corporelle idéale... »
                                         Philippe Val - France Inter 09/04/2001
   |\      _,,,---,,_
   /,`.-'`'    -.  ;-;;,_
  |,4-  ) )-,_. ,\ (  `'-'
 '---''(_/--'  `-'\_)   πr

perl -e '$_=q#: 3|\ 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-.  ;-;;,_:  |,A-  ) )-,_. ,\ (  `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"'  `-'"'"'\_): 24πr::#;y#:#\n#;s#(\D)(\d+)#$1x$2#ge;print'
- --> Ce message n’engage que son auteur <--

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail


Reply to: