deux2one.pl

#!/usr/bin/perl
use locale; #caracteres accentues
#perl deux2one.pl
#On obtient les 6 fichiers contenant chacun 2 tableaux visualisables par la stylesheet
#Probleme 1: Perl refuse de modifier les fichiers culture
#Probleme 2: Bash est trop limité niveau expressions régulières mais accepte de modifier les fichiers culture
#En gros: Bash n'aime pas les slash, les guillemets et les chevrons et Perl n'aime pas les points et les espaces et avoir à traiter trop de fichiers au même temps
print "Bienvenu(e) au programme qui permet de \n
comparer un fichier de TreeTagger avec un fichier de Cordial. \n";
print "Tapez a si il s'agit des fichiers issus de \n la reponse a de xml2multi.pl ou si il s'agit \n exactement de la rubrique livres et culture sous \n la forme: livres-un-3-NA.xml, livres-un-c3-NA.xml, etc. \n";
print "Tapez t si vous voulez fusionner trois couples \n de deux fichiers ayant les memes rubriques et les \n memes patrons dont l'un a ete balise par TreeTagger \n -3- et l'autre par Cordial -c3- et changer le nom de \n la feuille de style en -3c-. \n";
print "Tapez x si vous voulez fusionner deux fichiers XML \n quelconques et modifier le nom de la feuille de style par la votre. \n";
print "Sinon tapez q \n";
my $rep=<STDIN>;
chomp($rep);
if ($rep=~/a/)
{
system "#!/bin/bash
cp livres-un-3-NA.xml \.\/livres-un-3c-NA.xml;
cp livres-un-3-NN.xml \.\/livres-un-3c-NN.xml;
cp livres-un-3-NPN.xml \.\/livres-un-3c-NPN.xml;
cp culture-un-3-NA.xml \.\/culture-un-3c-NA.xml;
cp culture-un-3-NN.xml \.\/culture-un-3c-NN.xml;
cp culture-un-3-NPN.xml \.\/culture-un-3c-NPN.xml;
cp livres-un-c3-NA.xml \.\/livres-un-c2-NA.xml;
cp livres-un-c3-NN.xml \.\/livres-un-c2-NN.xml;
cp livres-un-c3-NPN.xml \.\/livres-un-c2-NPN.xml;
cp culture-un-c3-NA.xml \.\/culture-un-c2-NA.xml;
cp culture-un-c3-NN.xml \.\/culture-un-c2-NN.xml;
cp culture-un-c3-NPN.xml \.\/culture-un-c2-NPN.xml;
echo \"Attendez s'il vous plait...\";";
system "#!/bin/bash
#Modification de la deuxieme ligne
#tete
sed -i\.bak -e s/style-3-NOM-ADJ/style-3c-NOM-ADJ/g \./livres-un-3c-NA\.xml;
sed -i\.bak -e s/style-3-NOM-NOM/style-3c-NOM-NOM/g \./livres-un-3c-NN\.xml;
sed -i\.bak -e s/style-3-NOM-PREP-NOM/style-3c-NOM-PREP-NOM/g \./livres-un-3c-NPN\.xml;
sed -i\.bak -e s/style-3-NOM-ADJ/style-3c-NOM-ADJ/g \./culture-un-3c-NA\.xml;
sed -i\.bak -e s/style-3-NOM-NOM/style-3c-NOM-NOM/g \./culture-un-3c-NN\.xml;
sed -i\.bak -e s/style-3-NOM-PREP-NOM/style-3c-NOM-PREP-NOM/g \./culture-un-3c-NPN\.xml;
#queue selection de l'inverse sinon: EOF pour les guillemets et No such file or directory pour le chevron
grep -v xml-stylesheet culture-un-c2-NA\.xml > temp-culture-un-c2-NA\.xml;
grep -v standalone temp-culture-un-c2-NA\.xml > temp2-culture-un-c2-NA\.xml;
grep -v xml-stylesheet culture-un-c2-NN\.xml > temp-culture-un-c2-NN\.xml;
grep -v standalone temp-culture-un-c2-NN\.xml > temp2-culture-un-c2-NN\.xml;
grep -v xml-stylesheet culture-un-c2-NPN\.xml > temp-culture-un-c2-NPN\.xml;
grep -v standalone temp-culture-un-c2-NPN\.xml > temp2-culture-un-c2-NPN\.xml;
grep -v xml-stylesheet livres-un-c2-NA\.xml > temp-livres-un-c2-NA\.xml;
grep -v standalone temp-livres-un-c2-NA\.xml > temp2-livres-un-c2-NA\.xml;
grep -v xml-stylesheet livres-un-c2-NN\.xml > temp-livres-un-c2-NN\.xml;
grep -v standalone temp-livres-un-c2-NN\.xml > temp2-livres-un-c2-NN\.xml;
grep -v xml-stylesheet livres-un-c2-NPN\.xml > temp-livres-un-c2-NPN\.xml;
grep -v standalone temp-livres-un-c2-NPN\.xml > temp2-livres-un-c2-NPN\.xml;
rename temp2-livres-un-c2-NA\.xml livres-un-c2-NA\.xml temp2-livres-un-c2-NA\.xml;
rename temp2-livres-un-c2-NN\.xml livres-un-c2-NN\.xml temp2-livres-un-c2-NN\.xml;
rename temp2-livres-un-c2-NPN\.xml livres-un-c2-NPN\.xml temp2-livres-un-c2-NPN\.xml;
rename temp2-culture-un-c2-NA\.xml culture-un-c2-NA\.xml temp2-culture-un-c2-NA\.xml;
rename temp2-culture-un-c2-NN\.xml culture-un-c2-NN\.xml temp2-culture-un-c2-NN\.xml;
rename temp2-culture-un-c2-NPN\.xml culture-un-c2-NPN\.xml temp2-culture-un-c2-NPN\.xml;
rm temp-livres-un-c2-NA\.xml;
rm temp-livres-un-c2-NN\.xml;
rm temp-livres-un-c2-NPN\.xml;
rm temp-culture-un-c2-NA\.xml;
rm temp-culture-un-c2-NN\.xml;
rm temp-culture-un-c2-NPN\.xml;
#Mise en place de 2 balises: TreeTagger puis Cordial
#tete
sed -i -e s/\"\<article\>\"/\"\<TreeTagger\>\"/g \./livres-un-3c-NA\.xml;
sed -i -e s/\"\<article\>\"/\"\<TreeTagger\>\"/g \./livres-un-3c-NN\.xml;
sed -i -e s/\"\<article\>\"/\"\<TreeTagger\>\"/g \./livres-un-3c-NPN\.xml;
sed -i -e s/\"\<article\>\"/\"\<TreeTagger\>\"/g \./culture-un-3c-NA\.xml;
sed -i -e s/\"\<article\>\"/\"\<TreeTagger\>\"/g \./culture-un-3c-NN\.xml;
sed -i -e s/\"\<article\>\"/\"\<TreeTagger\>\"/g \./culture-un-3c-NPN\.xml;
#queue
sed -i -e s/\"\<article\>\"/\"\<Cordial\>\"/g \./livres-un-c2-NA\.xml;
sed -i -e s/\"\<article\>\"/\"\<Cordial\>\"/g \./livres-un-c2-NN\.xml;
sed -i -e s/\"\<article\>\"/\"\<Cordial\>\"/g \./livres-un-c2-NPN\.xml;
sed -i -e s/\"\<article\>\"/\"\<Cordial\>\"/g \./culture-un-c2-NA\.xml;
sed -i -e s/\"\<article\>\"/\"\<Cordial\>\"/g \./culture-un-c2-NN\.xml;
sed -i -e s/\"\<article\>\"/\"\<Cordial\>\"/g \./culture-un-c2-NPN\.xml;
#tete
sed -i -e s/\"article\>\"/\"TreeTagger\>\"/g \./livres-un-3c-NA\.xml;
sed -i -e s/\"article\>\"/\"TreeTagger\>\"/g \./livres-un-3c-NN\.xml;
sed -i -e s/\"article\>\"/\"TreeTagger\>\"/g \./livres-un-3c-NPN\.xml;
sed -i -e s/\"article\>\"/\"TreeTagger\>\"/g \./culture-un-3c-NA\.xml;
sed -i -e s/\"article\>\"/\"TreeTagger\>\"/g \./culture-un-3c-NN\.xml;
sed -i -e s/\"article\>\"/\"TreeTagger\>\"/g \./culture-un-3c-NPN\.xml;
#queue
sed -i -e s/\"article\>\"/\"Cordial\>\"/g \./livres-un-c2-NA\.xml;
sed -i -e s/\"article\>\"/\"Cordial\>\"/g \./livres-un-c2-NN\.xml;
sed -i -e s/\"article\>\"/\"Cordial\>\"/g \./livres-un-c2-NPN\.xml;
sed -i -e s/\"article\>\"/\"Cordial\>\"/g \./culture-un-c2-NA\.xml;
sed -i -e s/\"article\>\"/\"Cordial\>\"/g \./culture-un-c2-NN\.xml;
sed -i -e s/\"article\>\"/\"Cordial\>\"/g \./culture-un-c2-NPN\.xml;";
#Une seule racine: document
#tete
my $file01="livres-un-3c-NA\.xml";
open(FILEIN01,$file01);
open(FILEOUT01, ">$file01.TT");
my $DUMPFULL01="";
while(my $recup01=<FILEIN01>) {
$recup01=~s/<\/document>//g; #supprime les balises fermantes de document
$DUMPFULL01.=$recup01;
}
print FILEOUT01 $DUMPFULL01;
close(FILEIN01);
close(FILEOUT01);
#
my $file02="livres-un-3c-NN\.xml";
open(FILEIN02,$file02);
open(FILEOUT02, ">$file02.TT");
my $DUMPFULL02="";
while(my $recup02=<FILEIN02>) {
$recup02=~s/<\/document>//g; #supprime les balises fermantes de document
$DUMPFULL02.=$recup02;
}
print FILEOUT02 $DUMPFULL02;
close(FILEIN02);
close(FILEOUT02);
#
my $file03="livres-un-3c-NPN\.xml";
open(FILEIN03,$file03);
open(FILEOUT03, ">$file03.TT");
my $DUMPFULL03="";
while(my $recup03=<FILEIN03>) {
$recup03=~s/<\/document>//g; #supprime les balises fermantes de document
$DUMPFULL03.=$recup03;
}
print FILEOUT03 $DUMPFULL03;
close(FILEIN03);
close(FILEOUT03);
#
my $file04="culture-un-3c-NA\.xml";
open(FILEIN04,$file04);
open(FILEOUT04, ">$file04.TT");
my $DUMPFULL04="";
while(my $recup04=<FILEIN04>) {
$recup04=~s/<\/document>//g; #supprime les balises fermantes de document
$DUMPFULL04.=$recup04;
}
print FILEOUT04 $DUMPFULL04;
close(FILEIN04);
close(FILEOUT04);
#
my $file05="culture-un-3c-NN\.xml";
open(FILEIN05,$file05);
open(FILEOUT05, ">$file05.TT");
my $DUMPFULL05="";
while(my $recup05=<FILEIN05>) {
$recup05=~s/<\/document>//g; #supprime les balises fermantes de document
$DUMPFULL05.=$recup05;
}
print FILEOUT05 $DUMPFULL05;
close(FILEIN05);
close(FILEOUT05);
#
my $file06="culture-un-3c-NPN\.xml";
open(FILEIN06,$file06);
open(FILEOUT06, ">$file06.TT");
my $DUMPFULL06="";
while(my $recup06=<FILEIN06>) {
$recup06=~s/<\/document>//g; #supprime les balises fermantes de document
$DUMPFULL06.=$recup06;
}
print FILEOUT06 $DUMPFULL06;
close(FILEIN06);
close(FILEOUT06);
#
system "#!/bin/bash
#tete (suite)
rename $file01.TT $file01 *\.xml\.TT;
rename $file02.TT $file02 *\.xml\.TT;
rename $file03.TT $file03 *\.xml\.TT;
rename $file04.TT $file04 *\.xml\.TT;
rename $file05.TT $file05 *\.xml\.TT;
rename $file06.TT $file06 *\.xml\.TT;
#queue
sed -i -e s/\"\<document\>\"//g \./livres-un-c2-NA\.xml;
sed -i -e s/\"\<document\>\"//g \./livres-un-c2-NN\.xml;
sed -i -e s/\"\<document\>\"//g \./livres-un-c2-NPN\.xml;
sed -i -e s/\"\<document\>\"//g \./culture-un-c2-NA\.xml;
sed -i -e s/\"\<document\>\"//g \./culture-un-c2-NN\.xml;
sed -i -e s/\"\<document\>\"//g \./culture-un-c2-NPN\.xml;
#Concatenation de la tete avec la queue
cat livres-un-3c-NA\.xml livres-un-c2-NA\.xml >> temp-livres-NA\.xml;
rename temp-livres-NA\.xml livres-un-3c-NA\.xml temp-livres-NA\.xml;
rm livres-un-c2-NA\.xml;
cat livres-un-3c-NN\.xml livres-un-c2-NN\.xml >> temp-livres-NN\.xml;
rename temp-livres-NN\.xml livres-un-3c-NN\.xml temp-livres-NN\.xml;
rm livres-un-c2-NN\.xml;
cat livres-un-3c-NPN\.xml livres-un-c2-NPN\.xml >> temp-livres-NPN\.xml;
rename temp-livres-NPN\.xml livres-un-3c-NPN\.xml temp-livres-NPN\.xml;
rm livres-un-c2-NPN\.xml;
cat culture-un-3c-NA\.xml culture-un-c2-NA\.xml >> temp-culture-NA\.xml;
rename temp-culture-NA\.xml culture-un-3c-NA\.xml temp-culture-NA\.xml;
rm culture-un-c2-NA\.xml;
cat culture-un-3c-NN\.xml culture-un-c2-NN\.xml >> temp-culture-NN\.xml;
rename temp-culture-NN\.xml culture-un-3c-NN\.xml temp-culture-NN\.xml;
rm culture-un-c2-NN\.xml;
cat culture-un-3c-NPN\.xml culture-un-c2-NPN\.xml >> temp-culture-NPN\.xml;
rename temp-culture-NPN\.xml culture-un-3c-NPN\.xml temp-culture-NPN\.xml;
rm culture-un-c2-NPN\.xml;
rm *\.bak;
echo \"Termine.\";
ls > tous-vos-fichiers\.txt;
grep \"3c\" tous-vos-fichiers\.txt > nom-de-fichier\.txt;";
print "\nLes nouveaux fichiers créés se trouvent dans cette liste: \n";
system "#!/bin/bash
cat nom-de-fichier\.txt;";
}
elsif ($rep=~/t/) ################################################################
{
print "\n Vous avez deux fichiers qui se nomment : \n rubrique-3-patron.xml et rubrique-c3-patron.xml et \n une feuille de style qui se nomme style-3c-patron.xsl\n";
print "Donnez le nom de votre rubrique: \n";
my $rubrique=<STDIN>;
chomp($rubrique);
print "Donnez le nom du premier patron: \n";
my $p1=<STDIN>;
chomp($p1);
print "Donnez le nom du deuxieme patron: \n";
my $p2=<STDIN>;
chomp($p2);
print "Donnez le nom du troisieme patron: \n";
my $p3=<STDIN>;
chomp($p3);
system "#!/bin/bash
cp $rubrique-3-$p1.xml \.\/$rubrique-3c-$p1.xml;
cp $rubrique-c3-$p1.xml \.\/$rubrique-c2-$p1.xml;
cp $rubrique-3-$p2.xml \.\/$rubrique-3c-$p2.xml;
cp $rubrique-c3-$p2.xml \.\/$rubrique-c2-$p2.xml;
cp $rubrique-3-$p3.xml \.\/$rubrique-3c-$p3.xml;
cp $rubrique-c3-$p3.xml \.\/$rubrique-c2-$p3.xml;
echo \"Attendez s'il vous plait...\";";

my $file1p1 = $rubrique."-3c-".$p1.".xml";
my $file2p1 = $rubrique."-c2-".$p1.".xml";
my $file1p2 = $rubrique."-3c-".$p2.".xml";
my $file2p2 = $rubrique."-c2-".$p2.".xml";
my $file1p3 = $rubrique."-3c-".$p3.".xml";
my $file2p3 = $rubrique."-c2-".$p3.".xml";

system "#!/bin/bash
#Modification de la deuxieme ligne
#tete
#sed n'accepte pas les fichiers en variables";
open(FILEIN01, $file1p1);
open(FILEOUT01, ">$file1p1.temp");
my $DUMPFULL01="";
while(my $recup01=<FILEIN01>) {
$recup01=~s/style-3-/style-3c-/g;
$DUMPFULL01.=$recup01;
};
print FILEOUT01 $DUMPFULL01;
close(FILEIN01);
close(FILEOUT01);
#
open(FILEIN02, $file1p2);
open(FILEOUT02, ">$file1p2.temp");
my $DUMPFULL02="";
while(my $recup02=<FILEIN02>) {
$recup02=~s/style-3-/style-3c-/g;
$DUMPFULL02.=$recup02;
};
print FILEOUT02 $DUMPFULL02;
close(FILEIN02);
close(FILEOUT02);
#
open(FILEIN03, $file1p3);
open(FILEOUT03, ">$file1p3.temp");
my $DUMPFULL03="";
while(my $recup03=<FILEIN03>) {
$recup03=~s/style-3-/style-3c-/g;
$DUMPFULL03.=$recup03;
};
print FILEOUT03 $DUMPFULL03;
close(FILEIN03);
close(FILEOUT03);
#
system "#!/bin/bash
#tete (suite)
rename $file1p1.temp $file1p1 *\.temp;
rename $file1p2.temp $file1p2 *\.temp;
rename $file1p3.temp $file1p3 *\.temp;
#queue selection de l'inverse sinon: EOF pour les guillemets et No such file or directory pour le chevron
grep -v xml-stylesheet $file2p1 > temp-$file2p1;
grep -v standalone temp-$file2p1 > temp2-$file2p1;
grep -v xml-stylesheet $file2p2 > temp-$file2p2;
grep -v standalone temp-$file2p2 > temp2-$file2p2;
grep -v xml-stylesheet $file2p3 > temp-$file2p3;
grep -v standalone temp-$file2p3 > temp2-$file2p3;
rename temp2-$file2p1 $file2p1 temp2-$file2p1;
rename temp2-$file2p2 $file2p2 temp2-$file2p2;
rename temp2-$file2p3 $file2p3 temp2-$file2p3;
rm temp-$file2p1;
rm temp-$file2p2;
rm temp-$file2p3;";
#Mise en place de 2 balises: TreeTagger puis Cordial
#Une seule racine: document
#tete
open(FILEIN04, $file1p1);
open(FILEOUT04, ">$file1p1.temp");
my $DUMPFULL04="";
while(my $recup04=<FILEIN04>) {
$recup04=~s/\<article\>/\<TreeTagger\>/g;
$recup04=~s/\<\/article\>/\<\/TreeTagger\>/g;
$recup04=~s/\<\/document\>//g; #supprime les balises fermantes de document
$DUMPFULL04.=$recup04;
};
print FILEOUT04 $DUMPFULL04;
close(FILEIN04);
close(FILEOUT04);
#
open(FILEIN05, $file1p2);
open(FILEOUT05, ">$file1p2.temp");
my $DUMPFULL05="";
while(my $recup05=<FILEIN05>) {
$recup05=~s/\<article\>/\<TreeTagger\>/g;
$recup05=~s/\<\/article\>/\<\/TreeTagger\>/g;
$recup05=~s/\<\/document\>//g; #supprime les balises fermantes de document
$DUMPFULL05.=$recup05;
};
print FILEOUT05 $DUMPFULL05;
close(FILEIN05);
close(FILEOUT05);
#
open(FILEIN06, $file1p3);
open(FILEOUT06, ">$file1p3.temp");
my $DUMPFULL06="";
while(my $recup06=<FILEIN06>) {
$recup06=~s/\<article\>/\<TreeTagger\>/g;
$recup06=~s/\<\/article\>/\<\/TreeTagger\>/g;
$recup06=~s/\<\/document\>//g; #supprime les balises fermantes de document
$DUMPFULL06.=$recup06;
};
print FILEOUT06 $DUMPFULL06;
close(FILEIN06);
close(FILEOUT06);
#queue##########
open(FILEIN07, $file2p1);
open(FILEOUT07, ">$file2p1.temp");
my $DUMPFULL07="";
while(my $recup07=<FILEIN07>) {
$recup07=~s/\<article\>/\<Cordial\>/g;
$recup07=~s/\<\/article\>/\<\/Cordial\>/g;
$recup07=~s/\<document\>//g; #supprime les balises ouvrantes de document
$DUMPFULL07.=$recup07;
};
print FILEOUT07 $DUMPFULL07;
close(FILEIN07);
close(FILEOUT07);
#
open(FILEIN08, $file2p2);
open(FILEOUT08, ">$file2p2.temp");
my $DUMPFULL08="";
while(my $recup08=<FILEIN08>) {
$recup08=~s/\<article\>/\<Cordial\>/g;
$recup08=~s/\<\/article\>/\<\/Cordial\>/g;
$recup08=~s/\<document\>//g; #supprime les balises ouvrantes de document
$DUMPFULL08.=$recup08;
};
print FILEOUT08 $DUMPFULL08;
close(FILEIN08);
close(FILEOUT08);
#
open(FILEIN09, $file2p3);
open(FILEOUT09, ">$file2p3.temp");
my $DUMPFULL09="";
while(my $recup09=<FILEIN09>) {
$recup09=~s/\<article\>/\<Cordial\>/g;
$recup09=~s/\<\/article\>/\<\/Cordial\>/g;
$recup09=~s/\<document\>//g; #supprime les balises ouvrantes de document
$DUMPFULL09.=$recup09;
};
print FILEOUT09 $DUMPFULL09;
close(FILEIN09);
close(FILEOUT09);
system "#!/bin/bash
#tete (suite)
rename $file1p1.temp $file1p1 *\.temp;
rename $file1p2.temp $file1p2 *\.temp;
rename $file1p3.temp $file1p3 *\.temp;
rename $file2p1.temp $file2p1 *\.temp;
rename $file2p2.temp $file2p2 *\.temp;
rename $file2p3.temp $file2p3 *\.temp;
#Concatenation de la tete avec la queue
cat $file1p1 $file2p1 >> tempp1.xml;
rename tempp1.xml $file1p1 tempp1.xml;
cat $file1p2 $file2p2 >> tempp2.xml;
rename tempp2.xml $file1p2 tempp2.xml;
cat $file1p3 $file2p3 >> tempp3.xml;
rename tempp3.xml $file1p3 tempp3.xml;
#Suppression de la queue
rm $file2p1;
rm $file2p2;
rm $file2p3;
echo \"Termine.\";
ls > tous-vos-fichiers\.txt;
grep \"3c\" tous-vos-fichiers\.txt > nom-de-fichier\.txt;";
print "\nLes nouveaux fichiers créés se trouvent dans cette liste: \n";
system "#!/bin/bash
cat nom-de-fichier\.txt;";
}
elsif ($rep=~/x/)
{
print "\n Vous avez deux fichiers qui se nomment : \n A.xml et B.xml et une feuille de style C.xsl \n";
print "Et vous souhaitez avoir en sortie un tableau double. \n";
print "Donnez le nom de votre premier fichier XML: \n";
my $a=<STDIN>;
chomp($a);
$a=~ s/\.xml$//;
print "Donnez le nom de votre deuxieme fichier XML: \n";
my $b=<STDIN>;
chomp($b);
$b=~ s/\.xml$//;
print "Donnez le nom complet de votre feuille de style XSL \n (...qui fait le tableau a deux n colonnes): \n";
my $c=<STDIN>;
chomp($c);
$c=~ s/\.xsl$//;
print "Donnez un nom representatif du theme de vos 3 fichiers \n sans espaces ni ponctuation sauf - ex: livres-culture: \n";
my $name=<STDIN>;
chomp($name);
my $file3 = $a.".xml";
my $file4 = $b.".xml";
system "#!/bin/bash
cp $file3 \.\/$a-$name.xml;
cp $file4 \.\/$b-$name.xml;
echo \"Attendez s'il vous plait...\";";
my $file1 = $a."-".$name.".xml";
my $file2 = $b."-".$name.".xml";
system "#!/bin/bash
#tete
#Suppression de tout le code de la feuille de style pour modification complete ou insertion
grep -v xml-stylesheet $file1 > temp-$file1;
#queue selection de l'inverse sinon: EOF pour les guillemets et No such file or directory pour le chevron
grep -v xml-stylesheet $file2 > temp-$file2;
grep -v standalone temp-$file2 > temp2-$file2;
rename temp-$file1 $file1 temp-$file1;
rename temp2-$file2 $file2 temp2-$file2;
rm temp-$file2;";
#Modification de la deuxieme ligne
#tete
#sed n'accepte pas les fichiers en variables
open(FILEIN01, $file1);
open(FILEOUT01, ">$file1.temp");
my $DUMPFULL01="";
while(my $recup01=<FILEIN01>) {
$recup01=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"$c\.xsl\"\?>\n/g;
$DUMPFULL01.=$recup01;
};
print FILEOUT01 $DUMPFULL01;
close(FILEIN01);
close(FILEOUT01);
system "#!/bin/bash
rename $file1.temp $file1 $file1.temp;";
print "\n Tape le nom de la balise racine commune a \n ",$a,".xml et ",$b,".xml sans les chevrons: \n";
my $racine=<STDIN>;
chomp($racine);
my $tete = "<".$racine."\>";
my $queue = "<\/".$racine."\>";
print "On va alors modifier: ",$tete," et ",$queue,"\n"," dans ",$file1," et ",$file2,"\n";
print "On a maintenant besoin de deux sous-balises differentes pour chaque fichier. \n";
print "\n Tape un nom de balise pour figurer en seconde place dans le fichier ",$file1,"\n";
my $deux1=<STDIN>;
chomp($deux1);
my $deux11 = "<".$deux1."\>";
my $deux12 = "<\/".$deux1."\>";
print "\n Tape un nom de balise pour figurer en seconde place dans le fichier ",$file2,"\n";
my $deux2=<STDIN>;
chomp($deux2);
my $deux21 = "<".$deux2."\>";
my $deux22 = "<\/".$deux2."\>";
print "On va alors additionner: ",$deux11," dans ",$file1," et\n ",$deux21," dans ",$file2,"\n";
#Deux deuxiemes balises differentes
#Premier fichier
open(FILEIN04, $file1);
open(FILEOUT04, ">$file1.temp");
my $DUMPFULL04="";
while(my $recup04=<FILEIN04>) {
$recup04=~s/$tete/$tete\n$deux11/g; #sous-document avec la balise racine puis la sous-balise
$recup04=~s/$queue/$deux12/g; #Une seule racine: racine #tete du gros document #supprime la balise racine fermante
$DUMPFULL04.=$recup04;
};
print FILEOUT04 $DUMPFULL04;
close(FILEIN04);
close(FILEOUT04);
#Deuxième fichier
open(FILEIN05, $file2);
open(FILEOUT05, ">$file2.temp");
my $DUMPFULL05="";
while(my $recup05=<FILEIN05>) {
$recup05=~s/$tete/$deux21/g; #Une seule racine: racine #queue du gros document #supprime la balise racine ouvrante
$recup05=~s/$queue/$deux22\n$queue/g; #sous-document avec la sous-balise puis la balise racine
$DUMPFULL05.=$recup05;
};
print FILEOUT05 $DUMPFULL05;
close(FILEIN05);
close(FILEOUT05);
system "#!/bin/bash
#tete (suite)
rename $file1.temp $file1 *\.temp;
rename $file2.temp $file2 *\.temp;
#Concatenation de la tete avec la queue
cat $file1 $file2 >> tempp1.xml;
rename tempp1.xml $file1 tempp1.xml;
#Suppression de la queue
rm $file2;
echo \"Termine.\";";
print "\nLe nouveau fichier créé se nomme $file1";
print "\nProposez un nouveau nom pour ce fichier.\n";
my $d=<STDIN>;
chomp($d);
$d=~ s/\.xml$//;
my $file3 = $d.".xml";
system "#!/bin/bash
rename $file1 $file3 $file1;
echo \"Termine.\";";
print "\nLe nouveau fichier créé se nomme $file3";

}
else {
print "\n Annule.\n";
};