#1 Le 05/10/2010, à 15:51
- NoOneElse
remplacer un bloc dans 25000 fichier
salut,
j'ai un gros problème selon moi ^^ , je dois remplacer un bolc HTML par un autre bloc HTML (bloc d'un formulaire) dans 25000 fichier html !!!!:rolleyes::(
de l'aide
Hors ligne
#2 Le 05/10/2010, à 16:01
- yohann
Re : remplacer un bloc dans 25000 fichier
c'est pas très dur,
il suffit d'une commande sed, voir d'un script perl ou python si c'est une expression régulière un peu compliqué.
les fichiers sont-ils tous dans le même répertoire?
quel bloc est à remplacer par quoi?
c'est un exercice pour une école?
(sinon c'est une architecture assez mal conçu pour un systeme si gros, c'est étrange)
Dernière modification par yohann (Le 05/10/2010, à 16:02)
j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Hors ligne
#3 Le 05/10/2010, à 16:25
- NoOneElse
Re : remplacer un bloc dans 25000 fichier
ce bloc
<form id="search" method="GET" action="http://wwwsite.com/">
<div class="absMiddle">
<div class="loupe">
<img src="img/loupe.gif" alt="qsd" title="" />
</div>
<div class="quoi">
<input value="" size="30" name="searched_terms" id="searched_terms" />
</div>
<div class="boutonSearch">
<input name="submit" type="image" src="img/btn_rechercher.gif" value="" />
</div>
<div class="deposerSearch">
<a href="http://www.site.com/france.html" title=""><img src="img/bt_deposer_annonce.gif" alt="" /></a></div>
</div>
</form>
a remplacer par
<form id="search" method="GET" action="http://recherche.site.com/">
<div class="absMiddle">
<div class="loupe">
<img src="img/loupe.gif" alt="" title="" />
</div>
<div class="quoi">
<input value="" size="30" name="searched_terms" id="searched_terms" />
</div>
<input name="s_category" id="subcategorieSelect" value="0" type="hidden">
<input type="hidden" value="" id="localization" name="localization">
<input type="hidden" value="search" name="do">
<div class="boutonSearch">
<input name="submit" type="image" src="img/btn_rechercher.gif" value="" />
</div>
<div class="deposerSearch">
<a href="http://www.site.com/deposer-annonce-loc-france.html" title=""><img src="img/bt_deposer_annonce.gif" alt="" /></a></div>
</div>
</form>
Hors ligne
#4 Le 05/10/2010, à 19:05
- AnsuzPeorth
Re : remplacer un bloc dans 25000 fichier
Bjr,
Il faudrait savoir plusieurs choses:
Tu veux remplacer le fichier existant ou en faire une copie ?
Tu comptes alimenter les noms de fichiers dans le script, via une liste ou ils sont tous dans le même dossier ?
Est-ce que la balise <form id="search" n'est présente qu'a un seul endroit dans le fichier.
Combien tu payes ?
En python ca fera très bien le taf (en bash aussi ca serait possible d'ailleurs !)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#5 Le 05/10/2010, à 19:30
- Hizoka
Re : remplacer un bloc dans 25000 fichier
en bash c'est pas trop dur
si c'est toujours les mêmes blocs :
fichier=$(cat lefichier.htm)
old='<form id="search" method="GET" action="http://wwwsite.com/">
<div class="absMiddle">
<div class="loupe">
<img src="img/loupe.gif" alt="qsd" title="" />
</div>
<div class="quoi">
<input value="" size="30" name="searched_terms" id="searched_terms" />
</div>
<div class="boutonSearch">
<input name="submit" type="image" src="img/btn_rechercher.gif" value="" />
</div>
<div class="deposerSearch">
<a href="http://www.site.com/france.html" title=""><img src="img/bt_deposer_annonce.gif" alt="" /></a></div>
</div>
</form>'
new='<form id="search" method="GET" action="http://recherche.site.com/">
<div class="absMiddle">
<div class="loupe">
<img src="img/loupe.gif" alt="" title="" />
</div>
<div class="quoi">
<input value="" size="30" name="searched_terms" id="searched_terms" />
</div>
<input name="s_category" id="subcategorieSelect" value="0" type="hidden">
<input type="hidden" value="" id="localization" name="localization">
<input type="hidden" value="search" name="do">
<div class="boutonSearch">
<input name="submit" type="image" src="img/btn_rechercher.gif" value="" />
</div>
<div class="deposerSearch">
<a href="http://www.site.com/deposer-annonce-loc-france.html" title=""><img src="img/bt_deposer_annonce.gif" alt="" /></a></div>
</div>
</form>'
echo "${fichier//${a}/${b}}" > new_${fichier}
à coupler avec un for ou find.
et en modifiant la derniere ligne on peut sauvegarder dans le meme fichier
Dernière modification par Hizoka (Le 05/10/2010, à 19:31)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#6 Le 05/10/2010, à 19:36
- miniSeb
Re : remplacer un bloc dans 25000 fichier
[HS]
et en modifiant la derniere ligne on peut sauvegarder dans le meme fichier
Cool, comment ? Parce que je n'ai jamais trouvé !
[/HS]
Hors ligne
#7 Le 05/10/2010, à 19:43
- AnsuzPeorth
Re : remplacer un bloc dans 25000 fichier
C'est dommage que personne n'a 25 000 fichiers html à tester (ca doit être un TP, ou alors le webmaster est à virer ), sinon j'aurais été curieux de savoir si l'utilisation d'un boucle simple avec un flag lorsqu'il rencontre un pattern, ou l'utilisation de la substitution est plus rapide ?
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#8 Le 05/10/2010, à 19:47
- AnsuzPeorth
Re : remplacer un bloc dans 25000 fichier
[HS]
Hizoka a écrit :et en modifiant la derniere ligne on peut sauvegarder dans le meme fichier
Cool, comment ? Parce que je n'ai jamais trouvé !
[/HS]
Dans son exemple, il met le fichier dans une variable, donc pas de problèmes pour écraser l'original.
d'ailleurs, je me demande si pas mieux
fichier=$(< lefichier.htm)
Une commande moins;)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#9 Le 05/10/2010, à 21:28
- Hizoka
Re : remplacer un bloc dans 25000 fichier
Cool, comment ? Parce que je n'ai jamais trouvé !
echo "${fichier//${a}/${b}}" > ${fichier}
Ansuz : Bien vu
time for i in {1..100}; do fichier=$(cat news_en.txt); done
real 0m0.119s
time for i in {1..100}; do fichier=$(< news_en.txt); done
real 0m0.089s
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#10 Le 05/10/2010, à 21:47
- AnsuzPeorth
Re : remplacer un bloc dans 25000 fichier
J'aurais fait ça pour ne matcher qu'une seule occurrence (ca permet, je suppose, de ne pas parcourir tout le fichier)
echo "${fichier/${a}/${b}}" > ${fichier}
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#11 Le 05/10/2010, à 22:07
- Hizoka
Re : remplacer un bloc dans 25000 fichier
pas sur mais c'est surtout dans le cas ou il y en aurait plusieurs occurrences dans un même fichier... dans le doute...
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#12 Le 06/10/2010, à 00:56
- ehmicky
Re : remplacer un bloc dans 25000 fichier
C'est dommage que personne n'a 25 000 fichiers html à tester (ca doit être un TP, ou alors le webmaster est à virer ), sinon j'aurais été curieux de savoir si l'utilisation d'un boucle simple avec un flag lorsqu'il rencontre un pattern, ou l'utilisation de la substitution est plus rapide ?
Sinon, tu peux créer ces 25000 fichiers et essayer
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne
#13 Le 06/10/2010, à 08:41
- miniSeb
Re : remplacer un bloc dans 25000 fichier
Merci Hizoka
Dernière modification par miniSeb (Le 06/10/2010, à 08:41)
Hors ligne
#14 Le 06/10/2010, à 11:57
- AnsuzPeorth
Re : remplacer un bloc dans 25000 fichier
J'ai fait des essais sur 100 fichiers
boucle bash sur chaque fichier, 2 X plus lent qu'une substitution, boucle python, 10 X plus rapide qu'une substitution ....
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne