Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 ? big_smile

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 tongue

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]

Hizoka a écrit :

et en modifiant la derniere ligne on peut sauvegarder dans le meme fichier

Cool, comment ? big_smile 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 wink), 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

miniSeb a écrit :

[HS]

Hizoka a écrit :

et en modifiant la derniere ligne on peut sauvegarder dans le meme fichier

Cool, comment ? big_smile 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 tongue

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

AnsuzPeorth a écrit :

C'est dommage que personne n'a 25 000 fichiers html à tester (ca doit être un TP, ou alors le webmaster est à virer wink), 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 smile


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 smile

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