|
|
|
|
Bonjour à tous :)
Voilà je cherche à découper un fichier xml et j'ai cru comprendre que le awk pourrait être une bonne solution. Seulement je suis déjà pas vraiment fort en ksh, je suis vraiment un niewbie total en awk, et je n'ai rien compris aux quelques exemples que j'ai trouvé sur le net, voilà donc pourquoi je viens vous demander de l'aide ^^"
Mon fichier xml se présente comme suis :
<données>
<pleindebalisemaisosef1>
</données>
<données>
<pleindebalisemaisosef2>
</données>
<données>
<pleindebalisemaisosef3>
</données>
<données>
<pleindebalisemaisosef4>
</données>
etc... (le nombre de <données> est variable)
<données> <pleindebalisemaisosef1> </données>
<données> <pleindebalisemaisosef2> </données>
Configuration: Windows 2000 Firefox 2.0
Salut,
|
Salut,
awk '/<données>/,/<\/données>/ { print $0 }' fichierreste à trouver la boucle qui va bien pour traiter chaque itération et l'envoyer dans un fichierX++...
;-)) Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé. |
La commande csplit est faite pour cela:
|
Je suis en train d'essayer la commande csplit mais ça a pas l'air de marcher :x
</xml>zefhoizefozebf<xml></xml>sfnzoefnzeiof<xml></xml>nfoifgioero<xml> je lance la commande csplit -f hope test.xml "/<xml>/" et j'obtiens un fichier hope00 qui est complètement vide, et un fichier hope01 qui contient la même chose que test.xml, où est mon erreur ? :/ |
Erf ça marche pas...
perl -ne 'print if #<xml>#..#</xml>#' test.xml syntax error at -e line 1, at EOF Execution of -e aborted due to compilation errors. Je vais essayer de faire un script perl qui lit le fichier ligne par ligne et qui ecrit dans des fichiers de sortie en fonction de ce qu'il trouve, mais je sais pas si je vais arriver à obtenir ce que je voulais dans mon 1er post :x |
Salut,
$ cat t.xml <xml>elem1</xml>BLABLA<xml>elem2</xml>TOTOTITI<xml>elem3</xml> <xml>elem4</xml>BLABLA <xml>elem5</xml>TOTOTITI<xml>elem6</xml> <xml>elem7</xml>BLABLA<xml>elem8</xml> TOTOTITI<xml>elem9</xml> <xml>elem10</xml> BLABLA <xml>elem11</xml>TOTOTITI<xml>elem12</xml> <xml>elem13</xml> BLABLA <xml>elem14</xml> $ perl -ne '$"="\n";@t=/(<xml>(?!<\/xml>).*?<\/xml>)/g; print "@t\n"' t.xml <xml>elem1</xml> <xml>elem2</xml> <xml>elem3</xml> <xml>elem4</xml> <xml>elem5</xml> <xml>elem6</xml> <xml>elem7</xml> <xml>elem8</xml> <xml>elem9</xml> <xml>elem10</xml> <xml>elem11</xml> <xml>elem12</xml> <xml>elem13</xml> <xml>elem14</xml>lami20j
|
Salut,
|