Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/11/2019, à 16: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, à 17: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.

Hors ligne

#3 Le 23/11/2019, à 17: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. wink lol lol lol

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, à 17: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, à 17:53

nany

Re : isoler un texte entre deux balises

diesel a écrit :

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.

Hors ligne

#6 Le 23/11/2019, à 17:57

diesel

Re : isoler un texte entre deux balises

nany a écrit :

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, à 18: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, à 19: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, à 18: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, à 19: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). wink lol lol lol

Amicalement.

Jean-Marie

Dernière modification par diesel (Le 23/11/2019, à 19: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, à 19: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.

En ligne

#11 Le 23/11/2019, à 19: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, à 20: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, à 13: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