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

Répondre à