Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1586 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [bash]supprimer balises html

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[bash]supprimer balises html

n°911260
tchouvince
Posté le 10-05-2007 à 11:27:48  profilanswer
 

Voila, tout est dans le titre:
 
J'ai un fichier text dans lequel je voudrais supprimer toutes les balises html et ce qu'il y' a dans ces balises.
 
Merci beaucoup d'avance

mood
Publicité
Posté le 10-05-2007 à 11:27:48  profilanswer
 

n°911266
tchouvince
Posté le 10-05-2007 à 11:37:46  profilanswer
 

C'est pas si con que ça...
 
Le probleme c'est que mon fichier fait 20Mo et que j'ai un pc pourri
 
 
Merci quand meme

n°911267
electro86
Posté le 10-05-2007 à 11:38:32  profilanswer
 

Tu peux utiliser l'outils "sed" par exemple qui va lire toutes tes ligne de ton fichiers une par une, et en utilisant une expression régulière tu pourra supprimer ta balise.  
Mais cela va te poser 2 problème:
-il va te faloir spécifier tout les type de balise html qui tu veux enlever (ça dans tout les cas tu risque d'être obliger de le faire, a moins d'avoir une liste des balises html qui existe)
-ça ne te suprimera que les balise et pas ce qui se trouve entre le balise d'ouveture et celle de fermeture

n°911269
wedgeant
Da penguin inside
Posté le 10-05-2007 à 11:54:38  profilanswer
 

Tu peux utiliser perl sinon, il propose des modules qui permettent de parser du html et de te le retranscrire en texte pur. J'ai jamais utilisé, mais je sais que ça existe ;)


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°911270
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 10-05-2007 à 11:59:16  profilanswer
 

tchouvince a écrit :

Voila, tout est dans le titre:

 

J'ai un fichier text dans lequel je voudrais supprimer toutes les balises html et ce qu'il y' a dans ces balises.

 

Merci beaucoup d'avance

 

Tu es sûr que tu veux supprimer ce qu'il y a dedans ? Ou garder ce qu'il y a dedans (bref "débaliser" ) ?
Dans le doute voici une solution pour tout virer, mais plus fine que de zapper <html>blabla</html> parce que je pense (à tort ?) que tu veux débaliser... Bref je prépare le terrain.

 

vim fichier.txt

 

on va chercher tout ce qui est de la forme <toto>blabla</toto> et le virer

 

dans vim ca revient à taper

   :%s;truc;remplaçant;gc    


(gc pour global (partout) et confirmation)

 

bref nous ca sera :

   :%s;truc;;gc    


vu qu'on veut supprimer

 


en détail ce qu'on cherche c'est (en rouge la version regexp) :
<
<
suivi de :un nom de balise, n'importe quoi sauf > en fait
[^>]*
suivi de : >
>
suivi de : n'importe quoi sauf <
[^<]*
suivi de : <
<
suivi de : /
/
suivi de : le même nom que la première balise (attention si elle avait des attributs genre <toto id="xxx"> faut que toto)
un peu subtil, voire plus bas
suivi de : >
>

  


*Plus bas c'est ici :D
en fait la première balise on va considérer que c'est non pas comme écrit plus haut :
    <[^>]*>
mais plutôt :
<
<
suivi de : n'importe quoi qui n'est pas un espace (comme ca dans <toto id="xxx"> on capte le que le toto)
[^ ]*
suivi de : n'importe quoi qui n'est pas >
[^>]*
suivi de : >
>
Du coup on peut mettre des parenthèses autour du morceau qui choppe le toto, pour le sauvegarder et s'en servir au moment où on cherchera la balise fermante.

   

Donc à la louche je ferai un :

   :%s;<\([^ ]*\)[^>]*>[^<]*</\1>;;gc


\1 rappelant le truc choppé par ce qui est entre parenthèse

 

A tester :o


Message édité par Xavier_OM le 17-06-2007 à 00:14:08

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°911273
franceso
Posté le 10-05-2007 à 12:03:53  profilanswer
 

Pour toutes les solutions à base de scripts, il faut faire vraiment attention à ce que le HTML présent dans ton fichier soit bien construit. Sinon, tu risques d'obtenir n'importe quoi, par exemple si des balises ouvertes ne sont pas fermées, ou en cas de mauvais "nesting" des balises (désolé je sais pas comment on dit en français), etc.


---------------
TriScale innov
n°911275
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 10-05-2007 à 12:12:45  profilanswer
 

franceso a écrit :

Pour toutes les solutions à base de scripts, il faut faire vraiment attention à ce que le HTML présent dans ton fichier soit bien construit. Sinon, tu risques d'obtenir n'importe quoi, par exemple si des balises ouvertes ne sont pas fermées, ou en cas de mauvais "nesting" des balises (désolé je sais pas comment on dit en français), etc.

 


Ah oué t'as raison, en fait si mon truc marche ca ne sera que pour du xml (xhtml ca passe) :/
Ou alors on cherche juste <html>.*</html> et on delete :D


Message édité par Xavier_OM le 10-05-2007 à 12:13:24

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°911279
wedgeant
Da penguin inside
Posté le 10-05-2007 à 12:44:00  profilanswer
 

D'façon, le html kipu et qui est mal formatté, ça mérite pas d'être nettoyé :o


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°911281
Jeddo
A nice place to live
Posté le 10-05-2007 à 12:55:43  profilanswer
 

franceso a écrit :

Pour toutes les solutions à base de scripts, il faut faire vraiment attention à ce que le HTML présent dans ton fichier soit bien construit. Sinon, tu risques d'obtenir n'importe quoi, par exemple si des balises ouvertes ne sont pas fermées, ou en cas de mauvais "nesting" des balises (désolé je sais pas comment on dit en français), etc.


Imbrication :o


---------------
FREE DATOUNE
n°911290
franceso
Posté le 10-05-2007 à 13:55:31  profilanswer
 

Jeddo a écrit :

Imbrication :o

thanks :jap:


---------------
TriScale innov
mood
Publicité
Posté le 10-05-2007 à 13:55:31  profilanswer
 

n°911291
electro86
Posté le 10-05-2007 à 14:02:12  profilanswer
 

Je suis d'accord avec Xavier_OM pour sa dans vim seulement ça ne va pas marcher avec les balises unique genre "<br />" ou <img ... /> ??  
Ou est ce que je dit une connerie?

n°911294
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 10-05-2007 à 14:05:22  profilanswer
 

electro86 a écrit :

Je suis d'accord avec Xavier_OM pour sa dans vim seulement ça ne va pas marcher avec les balises unique genre "<br />" ou <img ... /> ??  
Ou est ce que je dit une connerie?


 
euh non en effet, les balises autofermantes vont rester faudra les traiter aussi :/
et pis ya aussi les balises genre <input>, pas forcément fermées :(
et pis de tout façon en html (le vrai le moche :D) on peut faire de la merde genre <b><i>toto</b></i>  [:ruisseau de larmes]  
 
Bref parser du html c'est bon pour la team mozilla :D


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°911296
electro86
Posté le 10-05-2007 à 14:10:46  profilanswer
 

[quote=Xavier_OM]
Bref parser du html c'est bon pour la team mozilla :[/quote]
 
J'approuve !!! :p

n°911302
franceso
Posté le 10-05-2007 à 14:48:21  profilanswer
 

+1
 
Le seul salut possible, c'est d'utiliser du XHTML et un parser de XML.
 
Sinon, je pense que la seule solution est d'utiliser l'aide d'un bon éditeur de texte pour repérer les balises cherchées, et de tout contrôler à la main.


---------------
TriScale innov
n°911304
electro86
Posté le 10-05-2007 à 14:58:38  profilanswer
 

Oui mais si il sagit d'un fichier de 20 mo... ça doit faire un paquet de ligne donc je ne sais pas si à la main ca va pas lui prendre 10 ans!

n°911307
_p1c0_
Posté le 10-05-2007 à 15:02:34  profilanswer
 

+1, 20Mo de texte, ca fait mal aux yeux  :cry:  


---------------
-_- http://www.scienceshopping.com -_-
n°911308
neriki
oenologue
Posté le 10-05-2007 à 15:11:43  profilanswer
 

Pour transformer du html pourri en xhtml, il y a tidy. :o


---------------
C'est pas bon, Neriki, tu recommences à glander, là. :o
n°911309
M300A
Posté le 10-05-2007 à 15:25:51  profilanswer
 

Code :
  1. #!/usr/bin/php
  2. <?php
  3. $lines = file('/tmp/index.html');
  4. foreach ($lines as $line) {
  5.     echo strip_tags($line);
  6.     echo "\n";
  7. }
  8. ?>


 
Un début peut être.

n°911598
Mjules
Modérateur
Parle dans le vide
Posté le 11-05-2007 à 12:18:07  profilanswer
 

lynx -dump  t'interprétera le hachetemeuleu et écrira du texte, à voir.


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°911615
l0ky
Posté le 11-05-2007 à 13:15:15  profilanswer
 

tchouvince a écrit :


J'ai un fichier text dans lequel je voudrais supprimer toutes les balises html et ce qu'il y' a dans ces balises.


Mjules a écrit :

lynx -dump  t'interprétera le hachetemeuleu et écrira du texte, à voir.


 
C'est ce que j'avais écris puis effacer puisqu'en fait ca correspond pas à la demande.


Message édité par l0ky le 11-05-2007 à 13:15:29
n°912440
Drakho
Posté le 14-05-2007 à 10:37:02  profilanswer
 

Si c'est pour les balises _et_ ce qu'il y a dedans...
 
mv tonfichier /dev/null
touch tonfichier
 
mais bon... j'vois pas l'utilité :p
 
Pour supprimer uniquement les balises, pourquoi ne pas simplement supprimer les caractères situés entre un < et un > !? (sauf s'il y a de ça dans le texte, hors balises)

n°912443
M300A
Posté le 14-05-2007 à 10:48:02  profilanswer
 

Je vois pas ce que vous avez contre mon bout de php. C'est surement bcp plus efficace qu'une regex.


Message édité par M300A le 14-05-2007 à 10:48:14
n°950650
Nouveau_ve​nu
Posté le 06-09-2007 à 17:51:10  profilanswer
 

C'est juste que ça ne fait pas ce qui est demandé et n'est pas facilement transformable en quelque chose qui fait ce qui est demandé.
 
Mais sinon, on n'a rien contre ton script et il est assez efficace pour faire ce qu'il fait.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [bash]supprimer balises html

 

Sujets relatifs
Comment supprimer les sauts de lignes[BASH] Extraire une URL d'un fichier (probleme avec grep)
(BASH) Ajouter des droits a un utilisateurBASH réponse à une question
BASH remplacer une chaine par une autre en suivant un motif.Supprimer les connexions ouvertes?
remplacement variable script bashsupprimer tous les user_xattr d'un FS
Supprimer Windows Vista[kubuntu] supprimer les anciens noyaux après MAJ
Plus de sujets relatifs à : [bash]supprimer balises html


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR