Version complète: sur le forum Webmaster Hub : script sh pour scanner des html et remplacer des c
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Scripts et utilitaires
sndk
Bonjour a tous,

Dans le cadre de mon stage je suis amené à modifier de grandes données de texte,
toutes en .htm, je dois remplacer l'ancien nom du groupe par le nouveau, et forcement
45 000 pages html à la main, merci bien.

Je précise que c'est non pas dans les titres htm style www.anciengroupe.htm mais
à l'intérieur du .htm lui même, comme par exemple : href="www.anciengroupe/procedure.htm"
Voila.

Donc voici que je j'ai fait avec mon boss qui n'avais pas le temps, visiblement de m'aider.
find repertoirealisterici unautrerep etundernier -name "*.htm*" -type f -exec grep -in anciengroupe.fr {} /dev/null \;
donc qui scan les .htm et qui affiche toutes les lignes avec anciengroupe.fr

j'ai trouvé sur le net un petit script (que j'ai modifié) qui remplace une chaine par une autre, et ça marche très bien.

#! /bin/bash
for file in *.htm
do
cp $file $file.bak &&
sed "s|$1|$2|g" $file.bak > $file
done


mais bon déja j'ai été incapable de modifier ce script pour qu'il aille chercher tous les .htm DANS les repertoires,
alors j'ai bien essayé de modifier la première ligne de commande en :
find repertoirealisterici unautrerep etundernier -name "*.htm*" -type f -exec grep -in anciengroupe.fr {} /dev/null \; | cut -d":" -f1
et ça ma donné tous les fichiers ou ils y avait les noms à changer, mais encore une fois, incapable de prendre les noms et de les
incorporer au script.

Voila, si quelqu'un à un nom de programme qui tourne sous windows ou linux, au choix, ou mieu, qui puisse me donner la ligne de
commande, ca serais super gentil de sa part..

D'avance merci
elixir
Je fais un UP car j'allais justement poser la même question smile.gif

Je dois modifier des urls dans de nombreux repertoires d'un site et je voudrai pouvoir le faire grace a un client SSH pour que ca aille plus vite ( sinon sous dream, si je fais le chamgement et que je reupload tout j'en ai pour une heure, et comme je veut faire plusieurs tests, je suis pas sorti ! ). Quelqu'un m'a parlé de la commande AWK, est ce que ca dit quelque chose a quelqu'un ? Et si oui, comment l'utiliser ( je suis nul en la matière IMSTP6.gif ).

Merci smile.gif
sndk
en fait j'ai trouvé, je recherche la soluce que j'ai posté sur un autre forum,
ad taleur wink.gif
NorSeb
CITATION(sndk @ mercredi 19 avril 2006, 17h48)
en fait j'ai trouvé, je recherche la soluce que j'ai posté sur un autre forum,
ad taleur  wink.gif
*

Bonjour,

La moindre des choses serait aussi de poster la réponse ici :nono:
sndk
bon avec l'aide d'un college ont a trouver ca,
a mon avis ya bien plus court, mais ca marche :

fichier scan :
find . -name *.htm -type f -exec grep -l anciengroupe.fr {} /dev/null \;


donc je fais :
./scan > fic_liste

fichier rep :

#! /bin/bash
for file in $(cat fic_liste)
do
cp $file $file.bak &&
sed "s|$1|$2|g" $file.bak > $file
done


donc au final je fais :
./ rep anciengroupe nouveaugroupe


et ça marche impec, on peu tout incorporer pour que ca sois silencieux,
mais je préfère en 2 executable.

voila, si ca peux en aider certains !
vous pouvez proposer vos créations si le coeur vous en dis !

5 lignes de commandes et on évite de payer 20€ pour des progs windows qui font la même chose.

A++
sndk
CITATION(NorSeb @ mercredi 19 avril 2006, 16h49)
Bonjour,

La moindre des choses serait aussi de poster la réponse ici  :nono:
*


relis moi c'est ecris, ad taleur ! IMSTP6.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.