|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | |
|
Nouveau Membre du Club
![]() Inscription : août 2011 Messages : 30 ![]() |
Bonjour,
J'ai mis en place un script qui récupère des valeurs dans un fichier de log puis les envoies dans un autre fichier nommé "valeurs.log " Exemple de fichier valeurs.log : Citation:
j'ai essayé cette commande : cat valeurs.log | awk '{sum+=$1}' mais aucun résultat. Pouvez-vous m'aider ? Par avance merci |
|
|
|
10
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Salut,
Code :
awk '{ sum+=$1 } END { print sum }' valeurs.log
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
10
|
|
|
#3 |
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 445 ![]() |
Pour avoir un résultat, il faut l'imprimer
Code :
cat valeurs.log | awk 'BEGIN{sum=0}{sum+=$1}END{print sum}'
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur ![]() |
|
|
10
|
|
|
#4 |
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 445 ![]() |
Pour le fun, on peut aussi le faire en shell pur :
Code :
sum=0 ; while read i ; do (( sum+=i )) ; done < valeurs.log; echo $sum
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur ![]() |
|
|
20
|
|
|
#5 | ||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Bonjour,
en BASH : Code bash :
|
||
|
|
20
|
|
|
#6 |
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : octobre 2008 Messages : 1 375 ![]() |
Avec dc :
Code :
dc -f valeurs.log -e "0 0[+z1<a]salaxp |
|
|
10
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : août 2011 Messages : 30 ![]() |
Bonjour,
Merci beaucoup pour vos réponses ! J'ai désormais le choix ! Je vais immédiatement tester tout ça ! Encore merci et bonne soirée |
|
|
10
|
|
|
#8 | ||
|
Nouveau Membre du Club
![]() Inscription : août 2011 Messages : 30 ![]() |
Re,
Les commandes ci-dessus fonctionnent parfaitement ! Encore merci ! Désormais j'arrive à extraire de mon fichier de log la liste nom_machine -> valeur exemple de fichier : Citation:
Citation:
|
||
|
|
10
|
|
|
#9 |
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : octobre 2008 Messages : 1 375 ![]() |
Dans ce cas c'est awk le plus adapté, puisqu'il dispose de tables de hachage :
Code :
awk '{ total[$1] += $2 } END { for (i in total) { print i " = " total[i] } }' |
|
|
10
|
|
|
#10 | ||
|
Nouveau Membre du Club
![]() Inscription : août 2011 Messages : 30 ![]() |
Re,
Merci pour ta réponse matafan mais ta solution me donne ce résultat : Citation:
exemple : Citation:
Est-ce possible ? |
||
|
|
10
|
|
|
#11 | ||
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : octobre 2008 Messages : 1 375 ![]() |
C'est bien ce que ma ligne de commande est sensée faire, et chez moi c'est bien ce qu'elle fait. Tu es sûr que tu l'as bien copié, et que ton fichier d'entrée est bien formaté ?
Code :
|
||
|
|
10
|
|
|
#12 |
|
Nouveau Membre du Club
![]() Inscription : août 2011 Messages : 30 ![]() |
Re,
effectivement ça fonctionne correctement ! une erreur de ma part Encore merci pour votre aide. Bonne soirée |
|
|
10
|
|
|
#13 |
|
Nouveau Membre du Club
![]() Inscription : août 2011 Messages : 30 ![]() |
Bonjour,
Grâce à vos différentes réponses, j'arrive désormais à avoir dans mon fichier la liste des machines et leurs valeurs. J'aimerai dans un second temps insérer les résultats dans une base de données MySQL. Pouvez-vous me conseiller sur la méthode à utiliser ? - Est-ce préférable d'utiliser un script php ? - Est -ce possible de le faire avec un script shell ? Par avance merci Cordialement |
|
|
10
|
|
|
#14 | ||
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 535 ![]() |
php ? pour quoi faire ? pas besoin
bha oui tu fais en shell Code :
|
||
|
|
00
|
|
|
#15 |
|
Nouveau Membre du Club
![]() Inscription : août 2011 Messages : 30 ![]() |
Merci pour ta réponse frp31 mais par rapport à ma demande ci-dessus comment puis-je faire pour insérer mes données dans une base de données MySQL.
Pour rappel j'obtiens un fichier comme ceci : Machine1 = valeur Machine2 = valeur .... avec la commande suivante : Code :
cat fichier.log | awk '{ total[$1] += $2 } END { for (i in total) { print i " = " total[i] } }' > monfichier Machine1/2/... est le nom de la machine. Le nom peut être en MAJUSCULE, minuscule, avec un certains nombre de caractères. J'ai une table avec deux champs (Nom, Valeur). Je dois donc insérer le contenu du fichier "monfichier" dans ma base de données. Comment dois-je faire ? Est-ce possible comme cela : Code :
N=$(cat fichier.log | awk '{ total[$1] += $2 } END { for (i in total) { print i " = " total[i] } }' > monfichier) Code :
mysql -u user -p base -h host "insert into table values ($N) |
|
|
01
|
|
|
#16 | ||
|
Nouveau Membre du Club
![]() Inscription : août 2011 Messages : 30 ![]() |
Voila ce que je viens d'essayer :
Code :
line 62: unexpected EOF while looking for matching `"' line 64: syntax error: unexpected end of file |
||
|
|
01
|
|
|
#17 | |
|
Nouveau Membre du Club
![]() Inscription : août 2011 Messages : 30 ![]() |
J'ai trouvé mon erreur ! J'ai oublié un guillemet à la fin !
Code :
mysql -u root -p mabase "insert into matable VALUES ('$J','$K')" Citation:
|
|
|
|
01
|
|
|
#18 | ||
|
Nouveau Membre du Club
![]() Inscription : août 2011 Messages : 30 ![]() |
Je viens d'essayer la méthode ci-dessous :
Code :
Avez-vous une idée ? |
||
|
|
10
|
|
|
#19 |
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : octobre 2008 Messages : 1 375 ![]() |
Peut-être parce qu'il te manques les simple quotes autour des valeurs ? Essaie avec :
Code :
insert into matable values ('$J','$K') |
|
|
10
|
|
|
#20 | ||
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 445 ![]() |
Avec ça, tu devrais pouvoir tout faire en une seule passe
Code :
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur ![]() |
||
|
|
10
|
Copyright © 2000-2012 - www.developpez.com