Bonjour,

Je suis perdu dans les awk, sed, grep et j'aurais donc besoin de l'aide de personnes pour qui ces
commandes sont un jeux d'enfants ^^
Mon problème est le suivant :
Je dispose du fichier xml suivant (par exemple) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?xml version="1.0" encoding="UTF-8" ?>
<bookstore name="test" bookQty=4>
<book id=01>
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book id=02>
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book id=03>
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book id=04>
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
Cependant j'aimerais faire un script qui coupe ce fichier en plusieurs autres fichiers xml de 2 livres
tout en gardant le début du xml mais simplement tout les 2 livres je coupe. Ex de resultat que je cherche à obtenir

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8" ?>
<bookstore name="test_1" bookQty=2>
<book id=01>
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book id=02>
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
un autre fichier

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8" ?>
<bookstore name="test_2" bookQty=2>
<book id=01>
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book id=02>
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
et ainsi de suite, si à la fin il ne reste qu'un livre à placer, alors j'aurais un fichier avec uniquement
1 book avec la quantite pour la bookstore test_3 de 1

Donc je couple tout les 2 occurences de book et je remet le début du xml en adaptant le nom du bookstore et la quantité de livre

Je cherche à faire cela avec un script shell, sed, awk mais je vous avoue que je sèche un peu.
J'ai essayer en python mais je sais extraire des datas mais je cherche plutot à couper tout ce qui y a entre
2 tags books à chaque fois et recréer un xml.

Merci de votre aide !