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"; };