Je veux rechercher une chaîne de caractères et trouver le nombre d'occurrences dans un fichier en utilisant l'éditeur vi.
Il s'agit de la réponse la plus authentique, sans recours à l'astuce de la surenchère.
Je veux rechercher une chaîne de caractères et trouver le nombre d'occurrences dans un fichier en utilisant l'éditeur vi.
Vous avez besoin de la n
drapeau. Pour compter les mots, utilisez :
:%s/\i\+/&/gn
et un mot particulier :
:%s/the/&/gn
Ver count-items
section documentation.
Si vous tapez simplement :
%s/pattern/pattern/g
alors la ligne d'état vous donnera le nombre de correspondances en vi également.
(similaire à ce que Gustavo a dit, mais en plus : )
Pour tout précédemment recherche, vous pouvez le faire simplement :
:%s///gn
Un motif n'est pas nécessaire, car il se trouve déjà dans le registre de recherche ( @/
).
"%" - do s/
dans tout le fichier
"g" - recherche globale (avec plusieurs occurrences sur une ligne)
"n" - empêche tout remplacement de s/
-- rien n'est supprimé ! rien ne doit être défait !
(voir : :help s_flag
pour plus d'informations)
(De cette façon, il fonctionne parfaitement avec " Recherche d'un texte sélectionné visuellement ", tel que décrit dans vim-wikia tip171 )
Notez que cela ne vous indique que le nombre de lignes, et non le nombre d'occurrences. Je pense que la solution de Dirk est meilleure.
Ma solution ci-dessous compte correctement les occurrences multiples dans une ligne et il n'y a rien à défaire.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
13 votes
La réponse sélectionnée (
:g/xxxx/d
)est terrible, dangereux, et inférieur aux autres sur cette page. Veuillez le désélectionner.1 votes
Je suis d'accord et cela vous indique seulement "lignes supprimées" et non "occurrences supprimées".