Calcul de Sous totaux sous unix
Fermé
Jean Bôlida
-
17 juil. 2012 à 21:59
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 - 18 juil. 2012 à 14:15
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 - 18 juil. 2012 à 14:15
A voir également:
- Calcul de Sous totaux sous unix
- Calcul moyenne excel - Guide
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Logiciel calcul surface terrain gratuit - Télécharger - Outils professionnels
- Formule de calcul excel - Guide
4 réponses
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
Modifié par jisisv le 17/07/2012 à 23:26
Modifié par jisisv le 17/07/2012 à 23:26
Tu peux résoudre ceci facilement avc awk. Par exemple:
Gates gave ^H sold you the windows.
GNU gave us the whole house.(Alexandrin)
johand@osiris: ~/src/CCM/awk $ cat totaux.dat 00:00 Éric 15 00:00 Jean 8 00:00 Freddy 18 00:05 Nathan 4 00:05 Robert 22 00:05 Honoré 21 00:10 Gérard 7 00:10 Marco 14 00:10 Gilbert 20 johand@osiris: ~/src/CCM/awk $ cat totaux.sh #!/bin/sh awk -F " " '{SUMS[$1] += $3 ; } END {for (key in SUMS) { printf("Total %s\t%04d\n", key, SUMS[key]); } }' johand@osiris: ~/src/CCM/awk $ sort -R totaux.dat | ./totaux.sh Total 00:05 0047 Total 00:00 0041 Total 00:10 0041
Gates gave ^H sold you the windows.
GNU gave us the whole house.(Alexandrin)
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
18 juil. 2012 à 09:16
18 juil. 2012 à 09:16
hello
en bash
en bash
$ declare -A x ; while read t n v ; do ((x[$t]+=$v)); done < fichier ; for t in ${!x[@]}; do echo Total $t ${x[$t]} ; done Total 00:00 41 Total 00:05 47 Total 00:10 41
Bonjour
Merci beaucoup à tous pour vos aides, j'ai d'abord essayé avec la solution de "jisisv" et il semble OK mais j'ai fait sort -r au lieu de sort -R car -R est invalid.
Ainsi, si les valeurs dans le fichier "totaux.dat" contient des virgules, comment fait-on pour avoir aussi les sous totaux avec virgules?
Merci
Merci beaucoup à tous pour vos aides, j'ai d'abord essayé avec la solution de "jisisv" et il semble OK mais j'ai fait sort -r au lieu de sort -R car -R est invalid.
Ainsi, si les valeurs dans le fichier "totaux.dat" contient des virgules, comment fait-on pour avoir aussi les sous totaux avec virgules?
Merci
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
18 juil. 2012 à 14:15
18 juil. 2012 à 14:15
$ declare -A x ; while IFS=, read t n v ; do ((x[$t]+=$v)); done < fichier ; for t in ${!x[@]}; do echo Total $t ${x[$t]} ; done