3 votes

Unix - Diviser un fichier contenant des fichiers XML en fichiers individuels

J'ai travaillé sur un morceau de code qui divise un fichier contenant plusieurs fichiers XML en fichiers XML individuels. Le nombre de lignes de chaque fichier XML varie. J'ai donc utilisé la balise XML head pour savoir où commence le fichier suivant.

grep -n $string $xmlfile | sed -n 's/^\([0-9]*\)[:].*/\1p'

Ce qui me donne le numéro de ligne du début de chaque fichier. Comment puis-je utiliser la commande head/tail pour utiliser les numéros de ligne afin de séparer les fichiers dans un seul script automatisé ?

1voto

aefxx Points 10941
// x1, x2 being XML declaration line numbers
cat myfile | head -n x2 | tail -n x1

0voto

sputnick Points 31663

Lors de l'analyse syntaxique xml dans les fichiers de votre choix shell votre meilleure chance est d'utiliser xmllint en ligne de commande et Xpath expressions.


xmllint vient de libxml .

Voir http://www.xmlsoft.org/ & http://en.wikipedia.org/wiki/Xpath

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X