script qui scan des rep avec html et qui remplace des mots

script qui scan des rep avec html et qui remplace des mots - Shell/Batch - Programmation

Marsh Posté le 18-04-2006 à 14:10:57    

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
 
 [:alizean]


Message édité par Sndk le 18-04-2006 à 14:13:46

---------------
Mon topic - Mon Feed-Back
Reply

Marsh Posté le 18-04-2006 à 14:10:57   

Reply

Marsh Posté le 18-04-2006 à 14:13:02    

je précise que le script marche très bien pour des .htm qui sont dans le même rep, mais il ne va pas tout seul  
dans tous les rep possible, d'ou mon problème.
 
autre petit problème :  
le script oblige de faire une sauvegarde et j'ai pas réussi à le modifier pour qu'il n'en fasse pas,
même si je sais qu'un rm *.bak marche très bien, c'est quand même dommage.


Message édité par Sndk le 18-04-2006 à 14:13:32

---------------
Mon topic - Mon Feed-Back
Reply

Marsh Posté le 18-04-2006 à 16:33:02    

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++


Message édité par Sndk le 18-04-2006 à 16:33:58

---------------
Mon topic - Mon Feed-Back
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed