BASH: efffacer balise <script> avec sed?

Résolu
Bonjour,

Je souhaite faire un script SH qui puisse filtré les balises HTML et n'en garder que le texte brute...
Jusque là j'ai plus ou moins réussi et ce qui me pause problème aujourd'hui, c'est les balises html du genre

<script> code </script>


En effet je sais enlever tout ce qui se trouve entre les chevrons <*> mais dans les cas particuliers comme celui-ci j'aimerais retirer également ce qui se trouve entre les balises <script> et </script> (pareil pour les commentaires par la même occasion).

J'ai essayé avec le sed en vain... peut-être que je n'utilise pas la bonne syntax. Google ne m'a pas aidé sur ce coup et je compte sur votre aide.

Merci d'avance pour vos réponses :)

9 réponses

  1. Contributeur
    Salut,

    $ cat plop 
    <script> code </script>
    <bla>bli</bla>
    <script> code </script>
    <blabla>blibli</blabla>
    
    $ sed 's#<script>.*</script>##;s#<[^>]*>##g' plop 
    
    bli
    
    blibli
    
    $

    ;-))
    0
    1. Merci de ta réponse rapide malheuresement comme celà ça ne marche pas : /

      txt_brute=$(echo $HTML | sed 's|<[^>]*>||g' | sed 's|{[^>]*}||g' | sed 's|[[^>]*]||g' | sed 's#<script>.*</script>##;s#<[^>]*>##g')
      0
      1. Contributeur
        On peut avoir un aperçu de "echo $HTM" ?
        0
    2. Biensur:

      HTML=$(cat HTML/page.html | tr "\n" " " | tr "\r" " ")


      Je met tout en ligne pour que le sed le traite correctement.
      0
      1. Contributeur
        Je pensais que $HTML était le fichier ;-((

        Alors je reformule : Peut-on avoir le contenu de HTML/page.html ? ;-)
        0
    3. Le lien HTML est rentré par l'utilisateur dans ce cas la c'est le code HTML de la page d'accueil de google.
      0
      1. Contributeur
        Et tu veux faire quoi exactement ?

        Afficher la page d'accueil de Gogole en mode texte ?
        0
    4. Oui seulement le texte brute qui est affiché sur la page sans aucunes balises.
      0
      1. Contributeur
        curl -s http://www.google.fr | w3m -dump -T text/html
        0
    5. Oui je connais w3m seulement je ne suis pas sûr qu'elle soit installé sur les versions de l'iut car enfaite c'est un projet que nous devons faire par lequel nous ne pouvons utiliser que les commandes de base de linux
      0
      1. Contributeur
        En même temps "google" est un très mauvais exemple, le code source est une grosse m*rde à parser ;-((

        Honnêtement tu ne peux concevoir le parsage d'une page html qu'en sachant à l'avance comment est conçu le code source et ce que tu dois faire...
        0
      2. Bien d'accord malheuresement c'est un défi que l'on nous a lancé : / Je verrais ce que je peux faire et te tien au courant merci encore pour ton aide :)
        0
      3. Contributeur
        Essaie ça :

        $ wget -q -O- http://www.google.fr | iconv -f ISO-8859-1 -t UTF-8 | sed 's#</*script>\|</*style[^>]*>#\n&\n#g' | sed '\#<script>#,\#</script>#d' | sed '\#<style[^>]*>#,\#</style>#d' | sed 's#<[^>]*>##g'
        Google
        
        
        
        Web Images Vidéos Maps Actualités Shopping Gmail Plus »iGoogle | Historique Web | Paramètres | ConnexionFrance&nbsp;Recherche avancéeOutils linguistiquesSolutions publicitairesSolutions d'entrepriseÀ propos de GoogleGoogle.com in English© 2011 - Confidentialité 
        
        $
        :-))
        0
    6. Whaou.. Je n'en espérais pas tant :o en effet cette solution semble être plus efficace^^' Il y a certaines suites de caractere tel que les
      &nbsp 
      qui passe encore mais je vais chercher le moyen de les éliminer si je trouve >.>
      Merci beaucoup de ton aide :))
      0
      1. Contributeur
        Rajoute ça à la fin :
        | sed 's/&[^;]*;//g'
        0
    7. hello
      et avec GET
      $ GET -o text https://www.google.fr/?gws_rd=ssl | iconv -f ISO-8859-1 -t UTF-8
      Web Images Vidéos Maps Actualités Shopping Gmail Plus »iGoogle |
         Historique Web | Paramètres | Connexion
         France
      
      
         Recherche avancéeOutils linguistiques
      
      
         Solutions d'entrepriseÀ propos de GoogleGoogle.com in English
      
         © 2011 - Confidentialité
      $ 
      
      0
      1. Contributeur
        Salut,

        Effectivement ;-))

        Ce qui correspondrait davantage à sa demande :
        c'est un projet que nous devons faire par lequel nous ne pouvons utiliser que les commandes de base de linux

        Vu que l'emploi de w3m ne semblait pas convenir ;-(
        0
      2. Contributeur
        Quoi que...

        $ GET -o text  http://www.google.fr
        The HTML-Tree distribution need to be installed for the -o option to be used.


        ;-((
        0
      3. tout à fait, mais il est est installé chez moi d'office, alors que je n'ai pas w3m
        0
    8. Merci beaucoup encore ;) , j'ai ré-arangé tout ça après un bug et ca marche.

      Problème résolu :)
      0