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

Statistiques

7 réponses
Avatar
Guillaume Connan
Bonjour,
j'aurais besoin de compter le nombre de répliques de personnages dans
une pièce de théâtre. Existe-t-il un moyen de compter l'apparition
d'un certain Mot ?
Sinon, je suis en mode auto-fill mais le texte est au fer à gauche au
lieu d'être justifié.
Merci

--
Guillaume Connan

http://gconnan.free.fr

7 réponses

Avatar
Matthieu Moy
Guillaume Connan writes:

Sinon, je suis en mode auto-fill mais le texte est au fer à gauche au
lieu d'être justifié.



http://www-verimag.imag.fr/~moy/emacs/#autofill

--
Matthieu
Avatar
rixed
On 2007-07-04, Guillaume Connan wrote:
j'aurais besoin de compter le nombre de répliques de personnages dans
une pièce de théâtre. Existe-t-il un moyen de compter l'apparition
d'un certain Mot ?



Version shell, en attendant la réponse d'un emacseu natif :

sed 's/[ t]/n/g' | grep -i Tartuffe |wc -l

(avec gnu sed)

Note que ça ne fonctionne pas avec "Dom Juan".
Avatar
Jacques L'helgoualc'h
Le 06-07-2007, a écrit :
On 2007-07-04, Guillaume Connan wrote:
j'aurais besoin de compter le nombre de répliques de personnages dans
une pièce de théâtre. Existe-t-il un moyen de compter l'apparition
d'un certain Mot ?



Version shell, en attendant la réponse d'un emacseu natif :

sed 's/[ t]/n/g' | grep -i Tartuffe |wc -l



Grep sait compter les « mots », pas besoin de wc :

grep -icw Tartuffe

(avec gnu sed)



Sed peut le faire tout seul,

sed -n 's/<Tartuffe>/&n/ig;s/n[^n]*$//p' <texte | sed -n '$='

Voir « info sed », émulations de wc, pour compter en une seule passe.

Note que ça ne fonctionne pas avec "Dom Juan".



Sed, oui --- et il ne compte pas « tartufferie » :P
--
Jacques L'helgoualc'h
Avatar
Ph. Ivaldi
Le 04 juillet 2007, Guillaume Connan écrivit :

Bonjour,



Salut,

J'avais oublié ton message...

j'aurais besoin de compter le nombre de répliques de personnages dans
une pièce de théâtre. Existe-t-il un moyen de compter l'apparition
d'un certain Mot ?



Vite fait, avant de me lancer la "fontification":

(defun count-word (s)
(interactive "sNombre d'occurrence du *mot*: ")
(save-excursion
(beginning-of-buffer)
(message
(concat (number-to-string (count-matches
(concat "( +|^)"s"( +|$)")))
" occurence(s) trouvée(s)"))))

@+,
--
Philippe Ivaldi.
http://piprim.tuxfamily.org/
Avatar
Jacques L'helgoualc'h
Le 06-07-2007, Ph Ivaldi a écrit :
[...]
Vite fait, avant de me lancer la "fontification":

(defun count-word (s)
(interactive "sNombre d'occurrence du *mot*: ")
(save-excursion
(beginning-of-buffer)
(message
(concat (number-to-string (count-matches
(concat "( +|^)"s"( +|$)")))
" occurence(s) trouvée(s)"))))



Chez moi ça plante, le résultat de la fonction count-matches est déjà de
type string, à la "42 occurences".

Pour la regexp, à la fin d'un mot on peut aussi trouver une ponctuation
basse, une tabulation, un espace insécable, etc.

(defun count-word (s)
(interactive "sNombre d'occurrence du *mot*: ")
(save-excursion
(beginning-of-buffer)
(message
(concat
(count-matches
(concat "<" s ">"))
" trouvées"))))

J'ai la flemme de gérer le cas du singulier...
--
Jacques L'helgoualc'h
Avatar
Ph. Ivaldi
Le 07 juillet 2007, Jacques L'helgoualc'h écrivit :

Chez moi ça plante, le résultat de la fonction count-matches est déjà
de type string,



Bizarre... on ne doit pas avoir la même version de 'replace.el'.

C-h f count-matches <ret>
,----
| count-matches is an alias for `how-many' in `replace.el'.
| (count-matches REGEXP &optional RSTART REND INTERACTIVE)
|
| Print and return number of matches for REGEXP following point.
`---- ^^^^^^^^^^^^^

Pour la regexp, à la fin d'un mot on peut aussi trouver une
ponctuation basse, une tabulation, un espace insécable, etc.
"<" s ">"



Exact, je ne sais pas où j'avais la tête.

J'ai la flemme de gérer le cas du singulier...



Il faut en laisser pour Guillaume :-)
--
Philippe Ivaldi.
http://piprim.tuxfamily.org/
Avatar
Jacques L'helgoualc'h
Le 07-07-2007, Ph Ivaldi a écrit :
Le 07 juillet 2007, Jacques L'helgoualc'h écrivit :

Chez moi ça plante, le résultat de la fonction count-matches est déjà
de type string,



Bizarre... on ne doit pas avoir la même version de 'replace.el'.

C-h f count-matches <ret>
,----
| count-matches is an alias for `how-many' in `replace.el'.
| (count-matches REGEXP &optional RSTART REND INTERACTIVE)
|
| Print and return number of matches for REGEXP following point.
`---- ^^^^^^^^^^^^^



Ah oui, moi j'ai (GNU Emacs 21.4.1 (...) of 2007-06-19 on ninsei,
modified by Debian (Etch))

,----
| count-matches is an alias for `how-many' in `replace'.
| (count-matches REGEXP &optional RSTART REND)
|
| Print number of matches for REGEXP following point.
`----

et la dernière ligne de la fonction « how-many » est
(message "%d occurrences" count))))

À noter aussi, la regexp est sensible à la casse quand elle contient des
majuscules...

[...]
J'ai la flemme de gérer le cas du singulier...



Il faut en laisser pour Guillaume :-)



;)

--
Jacques L'helgoualc'h