Le mercredi 14 février 2007, Georges Lours a écrit : > Bonsoir, > > Bon, alors je reviens avec mon petit script > Le premier de mes problèmes est résolu grace à l'alliance de > Olivier-serveur et jipe > Je cherche la ligne contenant les keywords dans un fichier contenant une > page web et j'extrais ces keywords > ça donne à ça > ******************************************************* > grep -m "1" '<meta name=\"keywords\" content=\".*\">' "$fichier" | while > read line; > do > keywords=${line:31:${#line}-(31+2)} > echo $keywords; > done > ****************************************************** > > Le deuxième problème demeure > Je veux extraire un extrait de texte du même fichier page web, > Cet extrait commence par une ligne qui commence par "Vous êtes ici" > et se termine juste avant une ligne contenant "<ul class="direction">" > Je récupére les numéros de la ligne de début et de la ligne de fin de mon > extrait de cette façon (la dernière ligne peut avoir (ou ne pas avoir) un > numéro => 100) > > ************************************************* > debut=$(grep -n '<p>Vous êtes ici' "$fichier") > #élimine tous les caractères à partir de : > debut=${debut%:*} > echo $debut > fin=$(grep -n '<ul class="direction">' "$fichier") > fin=${fin%:*} > echo $fin > fin=$(($fin-1)) > echo $fin > *********************************************** > > C'est après que ça se complique car il faut que je récupère cet extrait > Pour l'instant, j'ai fait ça > *********************************************** > sed -n $debut,$fin\p "$fichier" |while read contenu; > do > echo $contenu > done > ************************************************ > > Mais, ça ne marche pas ! > > > Premier problème, > Je ne sais pas comment il faut insérer la valeur de ces variables... > J'ai fait un test, pour un fichier donné en mettant les numéros de lignes > sans utiliser les varialbles > sed -n 18,111\p "/var/www/html/page.web" |while read contenu; > m'affiche bien le contenu que je souhaite... >
Si ça y est, ça marche. L'erreur était dans la définition de $debut (debut=${debut%:*}) car il y a deux fois ':' dans cette ligne. Comme cette ligne a toujours un numéro inférieur à 100, j'ai mis debut=${debut:0:2} et c'est mieux ! sed -n $debut,$fin\p "$fichier" veut bien m'afficher quelque chose. Il ne reste donc plus que le problème des sauts de ligne rappelé ci-dessous : > Deuxième problème, > Mais, ça me l'affiche avec tous les sauts de ligne, or, il me le faut sans > les sauts de lignes > Si je reprends le conseil que m'avait donné olivier-serveur, et que je mets > echo $contenu | tr '\n' ' ' > ça me l'affiche bien sans les sauts de lignes, mais alors, je ne sais pas > récupérer cet extrait pour pouvoir, ensuite, le copier dans ma base de > données. > Il faudrait que j'arrive à enregistrer le contenu de $contenu | tr '\n' ' ' > > Bien cordialement, -- Georges Lours [EMAIL PROTECTED] Utilisateur Linux (counter 383333)
========================================= Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com". Rejoignez le club Mandriva : http://club.mandriva.com =========================================