Compter occurence de mot
Résolu/Fermé
A voir également:
- Compter occurence de mot
- Voir mot de passe wifi android - Guide
- Mot de passe administrateur - Guide
- Trousseau mot de passe iphone - Guide
- Identifiant et mot de passe - Guide
- Réinitialiser pc sans mot de passe - Guide
4 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
8 juil. 2010 à 16:38
8 juil. 2010 à 16:38
jp@MDK:~/tmpfs ssh$ cat foo.sh #! /bin/sh #set -xv i=0 while read line do count=$(egrep -o "\b$line\b" fichA | wc -l) i=$((i + count)) done < fichB echo "Total : $i" jp@MDK:~/tmpfs ssh$ ./foo.sh Total : 12 jp@MDK:~/tmpfs ssh$
;-))
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
8 juil. 2010 à 11:07
8 juil. 2010 à 11:07
Salut,
Et le fichier B a combien des mots.
Vu que c'est un mot par ligne alors affiche le résultat de
Dans le fichier A, que doit-on considerer comme séparateur des mots? Tous caractère de punctuation?
D'une doit être traité comme un seul mot par exemple?
Et le fichier B a combien des mots.
Vu que c'est un mot par ligne alors affiche le résultat de
wc -l < B
Dans le fichier A, que doit-on considerer comme séparateur des mots? Tous caractère de punctuation?
D'une doit être traité comme un seul mot par exemple?
le fichier B a 600 mots.
J'essaie dans 2 boucles imbriquées une comparaison de chaque mot du fichier avec chaque mot de la liste
mais sans succes, j'ai des bug, il prend word pour un paragraphe . Je suppose que cela vient du IFS mais je ne sais pas lequel je dois mettre pour avoir mot par mot dans la boucle
J'essaie dans 2 boucles imbriquées une comparaison de chaque mot du fichier avec chaque mot de la liste
for word in $(cat $elem); do for ref in $(cat $chemin/refEN.txt); do if [ $ref == $word ]; then ((occu += 1)) fi done done ((val = (occu * 100)/nbmottot)) echo "pourcentage de mot en anglais $val"
mais sans succes, j'ai des bug, il prend word pour un paragraphe . Je suppose que cela vient du IFS mais je ne sais pas lequel je dois mettre pour avoir mot par mot dans la boucle
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
8 juil. 2010 à 15:14
8 juil. 2010 à 15:14
Salut,
;-))
jp@MDK:~/tmpfs ssh$ cat fichA Bonjour, comment faire pour compter le nombre d'occurence de tout les mots d'un fichier A. Sachant que la liste des mots est dans un fichier B sous forme d'une colonne ( un mot par ligne ) ? Le fichier A ne fait pas plus de 100Ko mais je veux eventuellement réaliser cela sur plusieurs fichiers. commande look (en utilisant la liste de mot comme un dictionnaire) ? grep ? merci jp@MDK:~/tmpfs ssh$ cat fichB du de pour un le par la jp@MDK:~/tmpfs ssh$ while read line; do echo -e "$line = \c" && egrep -o "\b$line\b" fichA | wc -l; done < fichB du = 0 de = 3 pour = 1 un = 4 le = 1 par = 1 la = 2 jp@MDK:~/tmpfs ssh$
;-))
merci pour ce bout de code.
Mon soucis, c'est que je veux compter le nombre total de mot de mon fichier qui sont compris dans la liste.
avec ton exemple, je voudrais avoir dans une variable, "valeur" par exemple ,le résultat "12" car 12 mots du fichier A sont dans la liste du fichier B
Cela me permet, pour que vous compreniez mieux, de tester si un fichier est en anglais ou pas. J'ai une liste des 600 mots les plus utilisés en anglais, et je décide d'un nombre minimal à partir duquel $valeur doit etre pour "considerer le texte en anglais".
Mon soucis, c'est que je veux compter le nombre total de mot de mon fichier qui sont compris dans la liste.
avec ton exemple, je voudrais avoir dans une variable, "valeur" par exemple ,le résultat "12" car 12 mots du fichier A sont dans la liste du fichier B
Cela me permet, pour que vous compreniez mieux, de tester si un fichier est en anglais ou pas. J'ai une liste des 600 mots les plus utilisés en anglais, et je décide d'un nombre minimal à partir duquel $valeur doit etre pour "considerer le texte en anglais".
Modifié par lami20j le 9/07/2010 à 08:45
Ben, je vois que tu as fais tout le boulot ;-)
9 juil. 2010 à 03:58
9 juil. 2010 à 08:50
thanks