Calcul en colonne

Calcul en colonne - Linux et OS Alternatifs

Marsh Posté le 09-02-2005 à 20:11:44    

Bonsoir à tous,
 
Je voudrai extraire d'un fichier de log des données pour les additionner mais par colonne, un peu comme si je faisais une addition sous excel.
 
Voici la commande que j'utilise et le résultat obtenu :
 
#grep "REPORT-LOG" /var/log/temporaire | awk '{print $13 $15 $17 $19 $21 $23} | sed 's/,/ /g'
59 59 121 121 0 7  
54 54 88 88 0 7  
53 53 110 110 0 6  
58 58 103 103 0 6  
52 52 80 80 0 6  
67 67 113 113 0 6  
71 71 87 87 0 7  
73 73 112 112 0 8  
56 56 115 115 0 6  
51 51 112 109 3 7  
 
Y a t'il une commande spécifique qui pourrait me le faire ?

Reply

Marsh Posté le 09-02-2005 à 20:11:44   

Reply

Marsh Posté le 09-02-2005 à 20:16:35    

let
expr


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 10-02-2005 à 00:33:24    

bah a premiere vue tu met ca dans un fichier,
 
 tu fait un truc du genre  
 
 
cat fichier | awk '(print $1)' > toto1
 
la meme chose avec toutes les colonnes
 
puis  
for i in `cat toto1`
do
i = expr i + i
done
echo "la somme de la colonne est $i"
 
pareil avec les atres fichiers
 
bon la boucle for est fausse j'ai la flemme de reflechir ais l'idee est la.

Reply

Marsh Posté le 10-02-2005 à 09:34:01    

Exact pour la boucle for, j'y avais pensé mais je trouvais ça un peu lourd comme écriture. J'aurais pensé que awk pouvais le faire.
Merci quand meme de votre aide.

Reply

Marsh Posté le 10-02-2005 à 10:16:50    

masterlolo a écrit :

J'aurais pensé que awk pouvais le faire.


 
La nuit porte conseil :
Voila le script avec awk pour calculer :
 
 
#!/bin/sh
grep "REPORT-LOG" /var/log/temporaire | awk '{print $13 $15 $17 $19 $21 $23} | sed 's/,/ /g' | awk 'BEGIN { FS=" " }
{ A+=$1; B+=$2; C+=$3; D+=$4; E+=$5; F+=$6; }
END { printf ("%d %d %d %d %d %d\n",A,B,C,D,E,F) }

Reply

Sujets relatifs:

Leave a Replay

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