Bash-suppression des balises html

Résolu
Bonjour,

je fais appel à vous car
1) je voudrais supprimer les balises html d'un fichier
2) j'ai donc fais une sortie html de mon fichier mais la mise en forme n'est pas la meme que celle du fichier d'origine, je m'explique : mon fichier est sous forme de liste et en html tout est a la suite séparé par des espaces..

Merci par avance de l'aide que vous voudrez bien m'apporter

3 réponses

Résumé de la discussion

Le souci central est de supprimer les balises HTML d'un fichier en préservant la mise en forme et de compter les mots sans se baser sur les balises. Des conseils évoquent l'utilisation d'outils comme w3m pour extraire le contenu sans balises et des méthodes comme sed pour exclure les éléments HTML. La discussion met aussi en évidence qu'il faut éviter de supprimer les entités < et > avant les balises, puis isoler ces balises pour obtenir le texte brut. En parallèle, des échanges portent sur la mise en forme de la sortie HTML, notamment l'affichage des comptes de mots sous forme de liste et la gestion des sauts.

Bobot (l’IA à votre service)
  1. Contributeur
    Salut,

    Merci de mettre un exemple de ton fichier ou ici (copier/coller) ou en pièce jointe sur https://www.cjoint.com/ ;-\

    Zen my nuggets ;-)
    Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
    1. le fichier est sous la forme :
      1804 a
      1750 class
      1364 div
      943 http
      885 fr
      881 n
      828 href
      503 le
      487 du

      et en sortie html :
      1804 a 1750 class 1364 div 943 http 885 fr 881 n 828 href 503 le 487 du

      je voudrais donc que n'apparaissent pas les balises genre class div href ... et que il y ait un saut a la ligne apres chaque mot
      1. Contributeur
        Je doute que ce soit ça que tu veuilles, mais comme j'ai du mal à comprendre ;-\

        $ cat brol
        1804 a
        1750 class
        1364 div
        943 http
        885 fr
        881 n
        828 href
        503 le
        487 du
        
        $ sed 'G;s/class\|div\|href\|http//' brol 
        1804 a
        
        1750 
        
        1364 
        
        943 
        
        885 fr
        
        881 n
        
        828 
        
        503 le
        
        487 du
        
        
        $
      2. non ce n'est pas ce que je veux faire. Je m'explique mieux, en fait mon script doit compter le nombre d'occurrences de chaque mot d'un fichier et le mettre dans un autre nommé par exemple truc.html . mais le problème c'est que ça me compte les balises.
      3. Contributeur
        Je pige rien ;-\

        Il est sous quelle forme ton fichier ? Texte ou html ?
      4. ah non excuse moi le fichier de départ est une page web donc il y a les balises et je voudrais compter les mots sans compter les balises
      5. Contributeur
        Ben alors la solution donnée là devrait t'aider à solutionner ton problème ;-)
    2. Maintenant passons au saut a la ligne. Comment faire que dans ma sortie html les comptes des mots soient sous forme de liste?
      1. ça y est j'ai trouvé aussi! | awk '{ printf("%s<br/>\n", $0); }'
        Un grand Merci a toi pour ton aide zipe31 =)