Bonjour,
Je ne suis pas sûr d'avoir posté au bon endroit, mais bon, je tente.
J'aimerai récupérer dans un .txt des lignes d'un .html.
Facile me direz-vous, avec sed c'est possible.
Effectivement, sauf que les lignes qui m'intéressent changent de place quotidiennement.
Voici de mon script qui bloque au niveau du sed:
#récupère le numéro de ligne de Michel
grep -n «Michel» resultats.html | cut -c -3 > ligne.txt
LIGNE=$(cat /admin/ligne.txt)
LIGNE2=$(($LIGNE+2))
#Créer un fichier vainqueur.txt reprenant Michel et ses 2 poursuivants
sudo sed -n ‘LIGNE, LIGNE2’ resultats.html > /admin/vainqueurs.txt
Auriez-vous une solution pour que le sed accèpte ces LIGNE & LIGNE2?
Merci d'avance pour vos réponses
# Tu fais un script avec un parser HTML
Posté par François GUÉRIN (Mastodon) . Évalué à 1. Dernière modification le 06 octobre 2016 à 19:14.
Bonsoir,
Moi, je ferai un script en python avec beautifulsoup, un parser HTML complet, qui récupérerai les données pour les mettre dans le txt
C'est un peu overkill par rapport à sed, mais c'est efficace !
Bon courage !
[^] # Re: Tu fais un script avec un parser HTML
Posté par spm88 . Évalué à 1.
Merci pour le conseil,
mais malheureusement je n'y connais rien en python, même si c'est dans ma "to do list" des choses à découvrir.
Merci encore et bonne journée
# solution ?
Posté par Xavier Combelle (site web personnel) . Évalué à 1. Dernière modification le 06 octobre 2016 à 19:36.
essaye
sudo sed -n "${LIGNE1},${LIGNE2}p" resultats.html > /admin/vainqueurs.txt
[^] # Re: solution ?
Posté par benja . Évalué à 1.
Ou encore, sans devoir calculer les numéros de ligne avec grep :
sed -n /Michel/,+2p
.[^] # Re: solution ?
Posté par spm88 . Évalué à 1. Dernière modification le 07 octobre 2016 à 08:39.
Ça marche!!
Merci beaucoup Xavier pour la réponse rapide :-)
[^] # Re: solution ?
Posté par spm88 . Évalué à 1. Dernière modification le 07 octobre 2016 à 08:40.
Merci pour ta réponse benja, mais j'ai du faire une mauvaise manip' car ça ne fonctionne pas.
Merci :-)
# avec grep
Posté par NeoX . Évalué à 6.
bah dans les resultats, michel doit forcement etre suivi par les 2 suivants.
grep -A2 "Michel" resultats.html
devrait suffire à te sortir la ligne de michel et 2 lignes A pres (A fter en anglais)
et si des fois tu cherches les deux lignes A vant ? ben tu prend l'option -B2 ( B efore en anglais )
[^] # Re: avec grep
Posté par spm88 . Évalué à 1. Dernière modification le 07 octobre 2016 à 08:42.
Top!
Ça fonctionne nickel!
Merci beaucoup NeoX pour cette astuce :-)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.