Hello,
J'aimerais savoir combien de fois apparait un certain mot dans un fichier de log...
Quelqu'un connait il une méthode efficace ?
Merci ;) !
Version imprimable
Hello,
J'aimerais savoir combien de fois apparait un certain mot dans un fichier de log...
Quelqu'un connait il une méthode efficace ?
Merci ;) !
grep
par contre, si le mot est 2 fois dans la ligne, grep ne le comptera qu'une seule fois.
je te dirais,
cat monFichier | grep monMot | wc -l
Ca te renvera le nombre ligne comportant monMot dans monFichier
Par contre comme dit precedemment si le mot est present deux fois sur la meme ligne il ne sera compter qu une fois
peu etre long si les fichiers de log sont gros.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #!/bin/ksh typeset -i mCnt=0 mWord=$1 for mEach in `cat input_file` do if [ "${mEach}" = "${mWord}" ]; then mCnt=${mCnt}+1 fi done echo "Nombre de mots ${mWord} = ${mCnt}"
avec awk
Code:
1
2 awk -F "monMot" '{s+=(NF-1)} END {print s}' monFichier.log
heu...Code:
1
2
3
4
5
6
7 cat monFichier foo bar baz bar foo bar baz foo baz foo bar baz grep -o bar monFichier | wc -l 4
Bonjour,
Ne disposant pas de l'option -o sur la version de grep que j'ai, est-ce que la chose suivante ne fonctionnerait pas :
En effet, je ne vois pas la nécessité de passer par wc alors que grep -c fait normalement la même chose.Code:grep -oc bar mon_fichier
-c ne donnera pas le resultat attendu:
Cette option est imposee par POSIX et a ete correctement implementee dans GNU grep ;)Citation:
Envoyé par page man de grep
Code:
1
2
3
4
5
6
7
8
9 $ cat monFichier je mange tu manges il mange nous mangeons vous mangez ils mangent $ grep -o "\<mange\>" monFichier | wc -l 2