Bonjour,
Je suis bloqué sur un petit script en shell. Je récupère dans un fichier txt des entrées comme ci dessous :
120 facebook.fr
32 linuxfr.org
Lorsque je lance mon script avec le cron, j'ai du coup la même chose mais plusieurs fois puisque les résultats s'ajoutent au fur et à mesure du resultat.txt :
120 facebook.fr
32 linuxfr.org
64 facebook.fr
12 linuxfr.org
Je souhaiterai donc pouvoir additionner les nombre d'occurences quand les noms de domaines sont identiques, soit au final obtenir :
184 facebook.fr
44 linuxfr.org
J'avais pensé à faire quelque chose du genre :
cat resultat.txt | awk '{print $2}' | sort | uniq > fichier_intermediaire.txt
Après faire une boucle sur ce fichier puisque j'ai les noms de domaines uniques et dans cette boucle faire une boucle qui trouve chaque nom de domaine et en extrait le chiffre devant pour pouvoir faire l'addition de tout ce qu'il trouve.
Mais à partir de là je suis bloqué, je ne vois vraiment pas comment faire… Dans ma tête c'est clair mais impossible de le mettre en forme, certainement dû à un manque de connaissance en scripting..
Merci de vos avis éclairés.
# un tableau
Posté par NeoX . Évalué à 4.
si tu as bash4, ca doit pouvoir se faire avec un tableau pour chaque domaine.
tu le demarres à zero :
${facebook[occurence]}=0
et tu le remplis à chaque passage dans le fichier d'origine.
a chaque fois qu'apparait facebook, tu fais
${facebook[occurence]}=eval(${facebook[occurence]}+$valeur_lue)
evidemment tu peux utiliser des variables dans le nom du tableau
dans un boucle sur la variable
site
ca devient alors${$site[occurence]}
etc
# faut voir avec eval
Posté par fearan . Évalué à 2.
typiquement je ferai un
voila
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.