Compter le nombre d'occurences d'un mot dans un fichier ? [Résolu/Fermé]

Signaler
Messages postés
1956
Date d'inscription
samedi 22 novembre 2008
Statut
Membre
Dernière intervention
27 juillet 2016
-
Messages postés
1956
Date d'inscription
samedi 22 novembre 2008
Statut
Membre
Dernière intervention
27 juillet 2016
-
Salut,
j'ai une petite question apparemment toute simple :

pour compter le nombre de lignes contenant un mot on fait un
$ grep -i "pattern" filename | wc -l


mais si on a un fichier qui contient des milliers de caractères sur une (ou plusieurs) ligne(s) et qu'on aimerait chercher notre "pattern" dans ce fichier, comment fait-on ? (il se peut que "pattern" ait des espaces).

Merci.

4 réponses

Messages postés
18240
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 novembre 2020
5 201
hello
avec l'option -o
$ echo " a b c a d a" | grep -o "a" | wc -l
3
$ 
8
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
1956
Date d'inscription
samedi 22 novembre 2008
Statut
Membre
Dernière intervention
27 juillet 2016
102
Super, merci. ;)

Encore une option qui est passée trop vite sous ma molette :-(

Je profite encore de demander si quelqu'un a une idée pour attraper du code html avec grep.

Exemple :

<balise = "chaine">  
pattern text 
 </fin balise>


Je souhaite que l'intégralité de ce bout de code soit en fait le pattern de recherche de grep :
$ grep -i "<balise = "chaine"> pattern text </fin balise>"


Mais ça ça ne marche pas. Évidemment.
Mes trois questions à ce sujet sont donc :
- les sauts de ligne ? c'est \n pour grep ? J'ai pas l'impression... :S
- il y a des guillemets doubles dans la balise ; c'est correct de les échapper comme ça : \"
- le slash ( / ) j'ai rien besoin d'en faire, i.e. ce n'est pas un caractère spécial dans ce cas ?


Encore merci ! ;)

"Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement." -A. Einsten-
Messages postés
18240
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 novembre 2020
5 201
essayer
$ cat a3
aaa
bbb
<balise = "chaine">  
pattern text 
 </fin balise>
ccc
ddd
$ grep -P '(?s)<balise = "chaine">.*?</fin balise>' a3
<balise = "chaine">  
pattern text 
 </fin balise>
$ 
Messages postés
1956
Date d'inscription
samedi 22 novembre 2008
Statut
Membre
Dernière intervention
27 juillet 2016
102
Ça a l'air de bien fonctionner merci beaucoup ;-)
Je coche le message comme résolu (bien qu'il me viennent encore des questions à la pelle !)