Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Nettoyage d'un fichier html

23 réponses
Avatar
Escargot
Bonjour,

J'ai convertis un fichier tableur (LibreOffice Calc) en html pour
pouvoir le lire directement avec un navigateur Web.

Ce fichier a dans ses balises des "propriétés" propres à LibreOffice :

sdnum=" [du texte] "
sdval=" [une valeur] "

Comment faire avec Emacs pour enlever toutes ces "propriétés" et rendre
ainsi le fichier html plus léger ?

Le problème (pour moi) est que le texte ou la valeur indiqués entre
guillements ne sont pas toujours les mêmes.

Merci pour vos réponses.

J.

10 réponses

1 2 3
Avatar
Jean-Jacques Rétorré
lun. 19 oct. 2015, Escargot nous disait que :

Bonjour,

J'ai convertis un fichier tableur (LibreOffice Calc) en html pour
pouvoir le lire directement avec un navigateur Web.

Ce fichier a dans ses balises des "propriétés" propres à L ibreOffice :

sdnum=" [du texte] "
sdval=" [une valeur] "

Comment faire avec Emacs pour enlever toutes ces "propriétés" et
rendre ainsi le fichier html plus léger ?

Le problème (pour moi) est que le texte ou la valeur indiqués e ntre
guillements ne sont pas toujours les mêmes.

Merci pour vos réponses.

J.



La regerxp :

b(sdnum|sdval)="[^"]*"

matche toutes les expressions
que tu veux éliminer (chais plus comment on dit en français). Il suffit
de faire une recherche et remplacement par une chaîne vide.

Par exemple

C-M-% b(sdnum|sdval)="[^"]*" RET RET !

--
JJ R.
Avatar
Sébastien Kirche
Le 19 octobre 2015 à 14:27, Escargot vraute :

Bonjour,



Bonjour,

J'ai convertis un fichier tableur (LibreOffice Calc) en html pour
pouvoir le lire directement avec un navigateur Web.

Ce fichier a dans ses balises des "propriétés" propres à LibreOffice :

sdnum=" [du texte] "
sdval=" [une valeur] "

Comment faire avec Emacs pour enlever toutes ces "propriétés" et
rendre ainsi le fichier html plus léger ?

Le problème (pour moi) est que le texte ou la valeur indiqués entre
guillements ne sont pas toujours les mêmes.



Avec un petit motif de remplacement pour query-replace-regexp ?
Sur un petit jeu de données que j'ai simulé ici, un coup de C-M-S-% ou
M-x query-replace-regexp RET

motif à rechercher: (sdnum|sdval)=".*"
à remplacer par "" (chaine vide)

Si c'est susceptible de trouver du texte il sera mis en surbrillance et
Emacs se positionne sur le permier résultat en demandant une
confirmation :
- "y" pour accepter et passer au suivant
- "n" pour refuser et passer au suivant
si ça semble ok après 2 ou 3 remplacements, "!" permet d'effectuer tous
les remplacements restants en une fois sans confirmation supllémentaire.

HTH,
--
Sébastien Kirche
Avatar
Jean-Jacques Rétorré
lun. 19 oct. 2015, Sébastien Kirche .invalid> nous disait que :

Le 19 octobre 2015 à 14:27, Escargot vraute :

Bonjour,



Bonjour,

J'ai convertis un fichier tableur (LibreOffice Calc) en html pour
pouvoir le lire directement avec un navigateur Web.

Ce fichier a dans ses balises des "propriétés" propres à LibreOffice :

sdnum=" [du texte] "
sdval=" [une valeur] "

Comment faire avec Emacs pour enlever toutes ces "propriétés" et
rendre ainsi le fichier html plus léger ?

Le problème (pour moi) est que le texte ou la valeur indiqués entre
guillements ne sont pas toujours les mêmes.



Avec un petit motif de remplacement pour query-replace-regexp ?
Sur un petit jeu de données que j'ai simulé ici, un coup de C-M -S-% ou
M-x query-replace-regexp RET

motif à rechercher: (sdnum|sdval)=".*"
à remplacer par "" (chaine vide)



Je crains que ça ne marche pas si la chaîne à virer est sur plusieurs lignes.


Si c'est susceptible de trouver du texte il sera mis en surbrillance et
Emacs se positionne sur le permier résultat en demandant une
confirmation :
- "y" pour accepter et passer au suivant
- "n" pour refuser et passer au suivant
si ça semble ok après 2 ou 3 remplacements, "!" permet d'effect uer tous
les remplacements restants en une fois sans confirmation supllémenta ire.

HTH,



--
JJ R.
Avatar
Sébastien Kirche
Le 19 octobre 2015 à 22:31, Jean-Jacques Rétorré vraute :

> M-x query-replace-regexp RET
>
> motif à rechercher: (sdnum|sdval)=".*"
> à remplacer par "" (chaine vide)

Je crains que ça ne marche pas si la chaîne à virer est sur plusieurs
lignes.



Effectivement, je n'avait pas testé/pensé ce cas en absence de fichier
d'exemple.

--
Sébastien Kirche
Avatar
Lucas Levrel
Le 19 octobre 2015, Jean-Jacques Rétorré a écrit :

La regerxp :

b(sdnum|sdval)="[^"]*"



Que signifie le b ?

matche toutes les expressions
que tu veux éliminer (chais plus comment on dit en français).



Dire regexp ou match ? Regexp : expression rationnelle, si jeune m'abuse.
Match : trouve (pour ta phrase) ? Sinon, correspond à ?

--
LL
Ἕν οἶδα ὅτι οὐδὲν οἶδα (Σωκράτης)
Avatar
Jean-Jacques Rétorré
mar. 20 oct. 2015, Lucas Levrel nous disait que :

Le 19 octobre 2015, Jean-Jacques Rétorré a écrit :

La regerxp :

b(sdnum|sdval)="[^"]*"



Que signifie le b ?



,----[ (info "(emacs)Backslash in Regular Expressions") ]
| ‘b’
| matches the empty string, but only at the beginning or end of a
| word. Thus, ‘bfoob’ matches any occurrence of ⠀˜foo’ as a
| separate word. ‘bballs?b’ matches ‘ball ’ or ‘balls’ as a
| separate word.
|
| ‘b’ matches at the beginning or end of the buffer r egardless of
| what text appears next to it.
`----

C'est pour éviter de matcher des expressions comme
totosdnum=" [du texte] "
hautement improbable, mais ça ne coûte rien de préciser.


matche toutes les expressions
que tu veux éliminer (chais plus comment on dit en français).



Dire regexp ou match ? Regexp : expression rationnelle, si jeune
m'abuse. Match : trouve (pour ta phrase) ? Sinon, correspond à ?



Regexp, ça je sais, mais le sens de match me paraît assez él oigné de
trouver

D'après google-translate
,----[ M-x google-translate-at-point ]
| verb
| 1. égaler (match, equal, equate)
| 2. répondre à (answer, fulfill, fit, cater for, match, return)
| 3. harmoniser (harmonize, match, attune)
| 4. aller bien avec (match)
| 5. faire la paire (pair, match)
| 6. aller bien ensemble (match, match up)
| 7. être bien assorti (match)
| 8. être l'égal de (match, be on a par with)
| 9. s'assortir (assort, match)
| 10. s'harmoniser (harmonize, match, tone, match up)
| 11. s'identifier (match)
| 12. s'unir (unite, coalesce, match)
`----

Je dirais s'unifie, mais je pense que tous les utilisateurs des regexps
comprennent ce que veut dire match.

--
JJ R.
Avatar
Benoit Izac
Bonjour,

Le 20/10/2015 à 23:20, Jean-Jacques Rétorré a écrit dans le message
 :

matche toutes les expressions
que tu veux éliminer (chais plus comment on dit en français).



Dire regexp ou match ? Regexp : expression rationnelle, si jeune
m'abuse. Match : trouve (pour ta phrase) ? Sinon, correspond à ?



Regexp, ça je sais, mais le sens de match me paraît assez éloigné de
trouver

D'après google-translate
,----[ M-x google-translate-at-point ]
| verb
| 1. égaler (match, equal, equate)
| 2. répondre à (answer, fulfill, fit, cater for, match, return)
| 3. harmoniser (harmonize, match, attune)
| 4. aller bien avec (match)
| 5. faire la paire (pair, match)
| 6. aller bien ensemble (match, match up)
| 7. être bien assorti (match)
| 8. être l'égal de (match, be on a par with)
| 9. s'assortir (assort, match)
| 10. s'harmoniser (harmonize, match, tone, match up)
| 11. s'identifier (match)
| 12. s'unir (unite, coalesce, match)
`----

Je dirais s'unifie, mais je pense que tous les utilisateurs des regexps
comprennent ce que veut dire match.



Je pense que c'est plus proche de « correspond à » comme l'avait signalé
Lucas, en tout cas ce n'est pas « unifier ».

‘b’ matches the empty string => 'b' correspond à une chaîne vide
‘b’ matches at the beginning or end => 'b' correspond au début ou à la fin

--
Benoit Izac
Avatar
Lucas Levrel
Le 20 octobre 2015, Jean-Jacques Rétorré a écrit :

mar. 20 oct. 2015, Lucas Levrel nous disait que :

Le 19 octobre 2015, Jean-Jacques Rétorré a écrit :

La regerxp :

b(sdnum|sdval)="[^"]*"



Que signifie le b ?



,----[ (info "(emacs)Backslash in Regular Expressions") ]
| ‘b’
| matches the empty string, but only at the beginning or end of a
| word. Thus, ‘bfoob’ matches any occurrence of ‘foo’ as a
| separate word. ‘bballs?b’ matches ‘ball’ or ‘balls’ as a
| separate word.
|
| ‘b’ matches at the beginning or end of the buffer regardless of
| what text appears next to it.
`----



Merci. Question subsidiaire : comment obtient-on cette entrée d'info ?

--
LL
Ἕν οἶδα ὅτι οὐδὲν οἶδα (Σωκράτης)
Avatar
Sébastien Kirche
Le 21 octobre 2015 ¨¤ 20:54, Lucas Levrel a tapot¨¦ :

> > Que signifie le b ?
>
> ,----[ (info "(emacs)Backslash in Regular Expressions") ]
> > ¡®b¡¯
> > matches the empty string, but only at the beginning or end of a
> > word. Thus, ¡®bfoob¡¯ matches any occurrence of ¡®foo ¡¯ as a
> > separate word. ¡®bballs?b¡¯ matches ¡®ball¡¯ or ¡®balls¡¯ as a
> > separate word.
> >
> > ¡®b¡¯ matches at the beginning or end of the buffer regardle ss of
> > what text appears next to it.
> `----

Merci. Question subsidiaire : comment obtient-on cette entr¨¦e d'info ?



Je dirais :
- C-h i pour aller dans Info
- m emacs RET pour ouvrir la partie de la doc d'Emacs
- s backslash RET pour rechercher le noeud
ou m regexp backslash RET si on connait d¨¦j¨¤ la section recher ch¨¦e
--
S¨¦bastien Kirche
Avatar
Jean-Jacques Rétorré
mer. 21 oct. 2015, Lucas Levrel nous disait que :

Le 20 octobre 2015, Jean-Jacques Rétorré a écrit :

mar. 20 oct. 2015, Lucas Levrel nous disait que :

Le 19 octobre 2015, Jean-Jacques Rétorré a écrit :

La regerxp :

b(sdnum|sdval)="[^"]*"



Que signifie le b ?



,----[ (info "(emacs)Backslash in Regular Expressions") ]
| ‘b’
| matches the empty string, but only at the beginning or end of a
| word. Thus, ‘bfoob’ matches any occurrence of ‘foo’ as a
| separate word. ‘bballs?b’ matches ‘bal l’ or ‘balls’ as a
| separate word.
|
| ‘b’ matches at the beginning or end of the buffe r regardless of
| what text appears next to it.
`----



Merci. Question subsidiaire : comment obtient-on cette entrée d'info ?



Évaluer dans n'importe quel buffer (ou par M-: )
(info "(emacs)Backslash in Regular Expressions")

Pour parcourir le info de Emacs
(info "(emacs)") ou encore M-x info-emacs-manual

Pour apprendre à utiliser (info), évaluer
(info "(info)")

Pour parcourir les fichiers info :
M-x info RET ou C-h i


--
JJ R.
1 2 3