Bonjour!
J'ai commencé il ny 'a pas longtemps à réaliser de petits scripts shells et jusque là j'ai réussi à créer les fonctionalités voulues en cherchant sur votre forum et avec mon ami googlemais je cherche désormais à "optimiser" mon script, ce qui est moins évident...
Je m'explique : mon but est de rechercher une dizaine d'éléments (figurant une fois par ligne) dans un très gros fichier texte (30 à 100 mo !) et d'afficher le nombre de leur occurences :
- disons que je cherche les chaînes :
chaîne1 , chaîne2, .... , chaîne10
- je crée les variables :
nbOccur1='grep "chaîne1" monGrosFichier | wc -l'
nbOccur2='grep "chaîne2" monGrosFichier | wc -l'
...
nbOccur10='grep "chaîne10" monGrosFichier | wc -l'
- et je les sors les résultats successivement ainsi :
echo "$nbOccur1" >> fichierSortie.txt
echo "$nbOccur2" >> fichierSortie.txt
...
echo "$nbOccur10" >> fichierSortie.txt
Mon soucis c'est que ce script que je fais boucler sur plusieurs fichiers texte assez gros ( > 30 Mo ) se fait en bcp trop de temps (pas loin d'une heure).
Les données se trouvent, ca peut peut-être exliquer cela mais j'aurai voulu avoir votre avis sur une éventuelle optimisation de mon script. Je me demande s'il n'est pas possible de faire la recherche simultanément des 10 chaînes en ne parcourant le texte qu'une seule fois, au lieu de le parcourir 10 fois avec la recherche d'une seule chaîne... et pensez vous que cela prendrait moins de temps?
Merci d'avance pour votre aide![]()
Partager