#1 Le 23/11/2019, à 15:36
- sebastien29800
isoler un texte entre deux balises
bonjour à tous,
je souhaite récuperer dans un fichier nommé "index.html" une partie du texte se trouvant sur une ligne contenant "dataDescription"
pour ce faire :
test=`cat index.html | grep dataDescription`
le résultat donne :
echo $test
class="dataDescription"><span> Le temps sera sombre dans la journée accompagné d' averses de pluie sur Paris. </span><span
je souhaiterais isoler juste "Le temps sera sombre dans la journée accompagné d' averses de pluie sur Paris."
merci pour votre aide
Hors ligne
#2 Le 23/11/2019, à 16:22
- nany
Re : isoler un texte entre deux balises
Bonjour,
Pour commencer, ShellCheck râle sur ta première ligne.
test=$(grep "dataDescription" index.html)
Ensuite, pour parser du html, il y a des outils pour ça.
apt show html-xml-utils
Montre le contenu complet d’index.html pour qu’on puisse te guider.
En ligne
#3 Le 23/11/2019, à 16:35
- diesel
Re : isoler un texte entre deux balises
Je te proposerais bien ça :
test=$(grep dataDescription index.html | sed "s/<span>/\n<span>/g" | grep -m 1 "<span>" | sed -e "s/<span> //" -e "s/ <\/span>//")
Bien entendu, les spécialistes vont râler en disant que c'est pô propre.
Amicalement.
Jean-Marie
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#4 Le 23/11/2019, à 16:45
- pingouinux
Re : isoler un texte entre deux balises
Bonjour,
Par exemple :
grep -Po 'dataDescription.*span> \K.*(?= </)' index.html
Hors ligne
#5 Le 23/11/2019, à 16:53
- nany
Re : isoler un texte entre deux balises
c'est pô propre.
Oui, la proposition de pingouinux est bien plus propre en effet.
Mais je persiste à penser qu’il vaut mieux utiliser html-xml-utils.
En ligne
#6 Le 23/11/2019, à 16:57
- diesel
Re : isoler un texte entre deux balises
Je persiste à penser qu’il vaut mieux utiliser html-xml-utils.
Toutafé.
Je viens d'installer et je commence la lecture des man avec quelques petits tests pour comprendre ce que ça fait.
Amicalement.
Jean-Marie
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#7 Le 23/11/2019, à 17:03
- diesel
Re : isoler un texte entre deux balises
Pour en remettre une couche sur la propreté, les exemples donnés, que ce soit par pingouinux ou moi, partent du principe (en fonction de ce que nous a fournit Sebastien29800) que tout est sur une seule ligne. Si les balises html sont réparties sur plusieurs ligne, c'est mort.
Alors qu'un parser html s'en sortira sans problème (que le code soit sur une seule ligne ou réparti sur plusieurs).
Amicalement.
Jean-Marie
Dernière modification par diesel (Le 23/11/2019, à 18:30)
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#8 Le 23/11/2019, à 17:08
- pingouinux
Re : isoler un texte entre deux balises
Je suis tout à fait d'accord avec diesel #7.
Hors ligne
#9 Le 23/11/2019, à 18:29
- diesel
Re : isoler un texte entre deux balises
'tain, pour une fois que tu es d'accord avec moi dans cette section : CHAMPAGNE !
Manque plus que Watael et je me prends une cuite (mais là, c'est plus difficile).
Amicalement.
Jean-Marie
Dernière modification par diesel (Le 23/11/2019, à 18:31)
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#10 Le 23/11/2019, à 18:38
- Watael
Re : isoler un texte entre deux balises
cours acheter de l'alkaSelzer®, parce que je suis d'accord.
santé !
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#11 Le 23/11/2019, à 18:39
- diesel
Re : isoler un texte entre deux balises
Hips !
Amicalement.
Jean-Marie
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#12 Le 23/11/2019, à 19:10
- kamaris
Re : isoler un texte entre deux balises
Si jamais sebastien29800 est du genre à refuser, par exemple pour des raisons religieuses, d'utiliser un parser html :
sed -nE '/"dataDescription"><span>/{:loop; /<\/span>/!{N;b loop}; s/.*<span>|<\/span>.*//g; p}' index.html
Hors ligne
#13 Le 03/12/2019, à 12:53
- sebastien29800
Re : isoler un texte entre deux balises
bonjour à tous et désolé de ne pas avoir répondu plus tôt !!
je regarde toutes vos propositions, merci encore !
Hors ligne