Le lundi 12 février 2007, olivier-serveur a écrit :
(...)
> ca veux dire quoi conserver ?
> les sauts de lignes viennent de ton : echo $keywords
> il faut mettre : echo -n $keywords
> pour supprimer le saut de ligne (et enlever le tr '\n' qui ne servira
> plus a rien)

En fait echo -n $keywords m'affiche bien la chaîne sans les sauts de lignes, 
mais ne les remplace pas par des espaces et je n'ai plus qu'un seul mot (si 
on ne tient pas compte des virgules dans ce cas précis)
en fait, après

for keywords in $(grep -m "1" '<meta name=\"keywords\" 
content=\".*\">' "$fichier"); do....

echo $keywords m'affiche tous les mots de la ligne sur plusieurs lignes (une 
ligne pas mot)

echo -n $keywords m'affiche tous les mots sur la même ligne, mais sans espace 
entre chaque


echo $keywords | tr -d '"'| tr '\n' ' '
affiche presque ce que je veux, c'est à dire
<meta name=keywords content=cours de droit, cours de biologie, cours de... >
Je voudrais stocker ces chaînes de caractères dans une variable qu'on peut 
appeler $variable pour que je puisse ensuite supprimer les caractères du 
début (<meta name=keywords content=) et ceux de la fin (">)
Ensuite, il me restera plus qu'à envoyer $variable modifié vers ma base de 
données

> Si "conserver" veut dire recupere la valeur, alors changer :
> echo $keywords | tr -d '"'| tr '\n' ' '
> en :
> $vs=`echo -n $keywords | tr -d '"'`
> ou pour cumuler :
> $vs=`echo -n "$vs $keywords" | tr -d '"'`
> (pas testé)

Non, malheureusement, ça ne va pas !
$vs=`echo -n $keywords | tr -d '"'`
echo $vs
m'affiche 
<mon_script_bash>: line 8: =<meta: command not found
<mon_script_bash>: line 8:=name=keywords: command not found
<mon_script_bash>: line 8:=content=cours: command not found
<mon_script_bash>: line 8:=de: command not found
<mon_script_bash>: line 8:=droit,: command not found
etc,

$vs=`echo -n "$vs $keywords" | tr -d '"'`
echo $vs
m'affiche
<mon_script_bash>: line 8: =: command not found
autant de fois qu'il y a de mots

>
> >>>2) J'aimerais bien obtenir un affichage sur une seule ligne et non ligne
(...)

>
> et si tu fais :
> debut=`grep -n "<body>" $fichier |awk '{print $1}'`
> ($fichier est bien definit ?)
>
> > $debut et $fin ne sont pas affiché et j'ai l'erreur
> > sed: -e expression n°1, caractère 1: commande inconnue: `,'
>
> pas de 'for' pour sed, il extrait les lignes tout seul :
> sed -n $debut,$fin\p $fichier >$fichier_resultat
>
> A tout hasard, verifie en lancant cette ligne sur une console (en
> forcant les bonnes valeurs) :
> sed -n 10,20\p le_nom_du_fichier
> ca devrais t'afficher uniquement les lignes 10 a 20.

Je n'ai pas eu le temps d'essayer.
Le devoir m'appelle, je réessayerai mercredi.

Merci beaucoup pour ton aide :)

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 à