[Batch] Script de comptage du nombre d'occurrences dans un fichier

Script de comptage du nombre d'occurrences dans un fichier [Batch] - Shell/Batch - Programmation

Marsh Posté le 28-01-2011 à 01:07:30    

Bonjour à tous,
 
Je souhaiterais développer un script batch avec des commande DOS me permettant de compter le nombre d'occurrences d'une chaîne de caractères dans un fichier.  
Le script prend donc en entrée 2 paramètres : la chaîne de caractères à compter et le nom du fichier traité. Il renvoie le nombre d'occurrences de la chaîne de caractères présentes dans le fichier.  
 
Exemple :  
Chaîne de caractères à compter : abc
Fichier toto.txt composé des 3 lignes suivantes :
djlkzefabcfz lzeù flmezfel*ezmf abcfjkrlef jlrem
rfkjeklr fabcfrkfrl mfk
ekzljf jfkezmlr  
 
Le script doit donc renvoyer la valeur 3.
 
Après avoir effectué quelques tentatives, je me tourne vers les experts du forum pour m'aider.  
J'ai essayé d'utiliser la commande FINDSTR mais en vain...
 
Merci par avance pour vos réponses.  
 
 

Reply

Marsh Posté le 28-01-2011 à 01:07:30   

Reply

Marsh Posté le 28-01-2011 à 01:32:16    

batch ou command s'em.... à essayer de faire quelque chose qui est hors de son scope.
 
Il vaut mieux envisager du vbs ou autre pour cela ;)


---------------
Quand on aime on ne compte pas. Quel Dilemme lorsque l'on aime compter !
Reply

Marsh Posté le 28-01-2011 à 01:54:27    

Merci pour ta réactivité, mais j'ai une contrainte et ne peux pas me permettre d'utiliser autre chose qu'un script batch.  
Je reconnais que ce n'est pas le plus malin, mais je n'ai pas le choix...
 
Sinon, j'ai réussi à compter le nombre de fichier comprenant une chaîne de caractères via un batch. Donc j'imagine que cela doit être faisable via les tokens, et le FIND.
 
Avis aux amateurs.

Reply

Marsh Posté le 28-01-2011 à 20:18:21    

Vraiment dommage pour le vbs en 5lignes c'était torché.
 
Quelques contraintes supplémentaires du batch et dos : find et findstr travaillent sur des lignes de fichier texte
 
donc dès qu'une ligne contient plusieurs fois la chaine t'es marron, et si la chaine est répartie sur 2 ligne ca ne fonctionnera pas non plus
 

Citation :

zefa
bc
fz lze


 
have fun ;)


Message édité par Xspawn_Lpc le 28-01-2011 à 20:18:36

---------------
Quand on aime on ne compte pas. Quel Dilemme lorsque l'on aime compter !
Reply

Marsh Posté le 29-01-2011 à 23:59:13    

En 5 lignes, ça peut m'intéresser finalement... même si je ne connais pas du tout le langage.  
Le fichier qui doit être traité comprend des millions de lignes (c'est un fichier XML qui peut atteindre 1,5Go...). A voir si cela gère une telle volumétrie. Si tu as un code tout prêt, je suis preneur et je me renseignerai comment compiler et exécuter du VBS...

Reply

Marsh Posté le 30-01-2011 à 00:00:30    

pour mon cas, il n'est pas possible que la chaine de caractères soit présente plus d'une fois sur une même ligne ou qu'elle soit répartie sur 2 lignes comme dans ton exemple xspawn_lpc

Reply

Marsh Posté le 01-02-2011 à 13:28:55    

pour executer un vbs, pas besoin d'essayer de trouver un outil pour le compiler.
 
Juste lancer cscript.exe nom_du_script.vbs, éventuellement depuis un fichier cmd.
 
Par contre je ne fournis pas le script. a toi de regarder un peu sur le net qui regorge d'exemples ( procédure pour lire un fichier et parcourir les lignes, fonction pour remplacer une chaine de caractères)
 
+


---------------
Quand on aime on ne compte pas. Quel Dilemme lorsque l'on aime compter !
Reply

Marsh Posté le 07-02-2011 à 18:45:26    

Merci pour les infos. Le sujet peut être clos.  
La réponse à la question initiale est : Changer de langage de programmation !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed