Commande sed bash

gardiendelanuit Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   -  
gardiendelanuit Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir à tous!
Je viens ici en raison des limites de google...
En effet j'ai un projet bash à faire et débutant dans ce language je voudrais utiliser cette fonction.
Voici ce que j'ai actuellement:
txt_brute= sed -i 's|<[^>]*>||g' $html #On enleve les balises HTML pour obtenir le texte brute  
 echo $txt_brute >> texte_brute/texte_brute.txt


Je m'explique: j'ai récupéré le code source d'une page avec wget et je l'ai mise dans la variable $html, que je veux traiter avec sed en lui enlevant toutes les balises (autant que possible) pour attribuer à son tour le flux traité dans $txt_brute.

Mais voilà pour l'instant j'obtiens la modification dans le fichier d'origine et non dans texte_brute...
De plus je ne sais pas vraiment m'y prendre pour éliminer les balises du genre le code source de google...

Merci d'avance de vos réponses.

A voir également:

4 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

Tu dois juste récupérer le texte brut ?

Regarde si tu as "w3m" d'installer (dans le cas contraire tu l'installes) et :

wget $URL |  w3m -dump  -T text/html

Et tu auras ton texte brut ;-))
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Oups j'ai oublié les options pour "wget" ;-(

wget -O- $URL |  w3m -dump  -T text/html
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Re-

Et pour répondre à ta question première, à savoir :
Mais voilà pour l'instant j'obtiens la modification dans le fichier d'origine et non dans texte_brute...
Enlève l'option "-i" (in-place) de sed ;-)

txt_brute= sed  's|<[^>]*>||g' $html

0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Décidément je ne fais que des c*nneries moi ;-((

 txt_brute=$(sed  's|<[^>]*>||g' $html)

Sans espaces avant et après le signe "égal" ;-\
0
gardiendelanuit Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   264
 
Merci beaucoup pour tes réponses! Je test ça dès que je passe sous Linux (j'ai un projet, personnel cette fois-ci, que j'avance).
Je te tiens au courant, merci encore.
0
gardiendelanuit Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   264
 
Bien voilà le résumé: w3m marche parfaitement seulement celà m'étonnerais que je puisse l'utiliser alors que c'est un projet que l'on doit faire sans partie dejà faite et avec les commandes dejà présente.
Pour ce qui est du sed, je pense que je dois faire plusieurs sed consécutifs en pipe jusqu'à avoir le meilleur résultat possible...
Pour ce qui est du wget, je voudrais que lorsqu'il y a un quelquonc problème, on puisse écrire un message... Comment faire ça (je ne sais pas si le bash fonctionne comme le c++ ou php où la fonction retourne 0 ou 1 par exemple...)

Merci d'avance et merci encore de tes réponses!
0