Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2350 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [awk/sed] Traitement du fichier de stats boinc...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[awk/sed] Traitement du fichier de stats boinc...

n°759838
TetardKing
Docteur square inside
Posté le 10-06-2004 à 22:28:41  profilanswer
 

Bonjour :hello:
 
Le fichier de stats de Berkeley pour boinc est assez enorme dans la version Seti2. Genre 900 Mo, avec plein d'infos inutiles  :pfff:  
 
Du coup, j'essaye de le nettoyer un peu, en enlevant les personnes qui sont à zéro. En gros, le fichier donne ca :
 

Code :
  1. <user>
  2. <id>3336825</id>
  3. <name>bbi38-ro</name>
  4. <url></url>
  5. <country>Germany</country>
  6. <create_time>1086591053</create_time>
  7. <total_credit>100.988396</total_credit>
  8. <expavg_credit>9.615422</expavg_credit>
  9. <cpid>27e983057765c24d53c1e6feeb491abd</cpid>
  10. </user>


 
Certains sont à 0.000000 en total_credit par exemple.
Ma méthode à moi bourrin que j'ai :
tr -d '\n' < fichier >sortie
sed -i 's#</user>#</user>\n#g' sortie
grep -v '0.0000000' sortie
 
pour n'avoir que les personnes ayant un scores différent de 0.00000
 
J'ai prevenu, c'est bourrin...
Je me dit qu'avec awk, il y a moyen de faire plus propre. Autant je maitrise un peu sed et grep, autant là, j'ai beaucoup de mal.
Le but est de remplir une base sql. Elle permettrait de faire pour Seti2, ce que je fait dejà pour Astropulse : http://stats.boinc.fr
 
Merci beaucoup pour tout conseils ou piste :jap:
 
 


---------------
Da Breizh WoRlD DoMIna7iOn T3aM * Baptiste Mary blog
mood
Publicité
Posté le 10-06-2004 à 22:28:41  profilanswer
 

n°760307
Black Hole​ Sun
Esprit chaotique
Posté le 11-06-2004 à 12:27:00  profilanswer
 

[:belgarion_cer] de soutien d'un ignare absolu dans ce domaine :D


---------------
Les Road Runners sur BOINC - Mon site sur le modélisme radio-commandé
n°761708
ienchangel
test
Posté le 13-06-2004 à 12:36:51  profilanswer
 
n°761842
Taz
bisounours-codeur
Posté le 13-06-2004 à 16:33:25  profilanswer
 

un coup de perl et on en parle plus :o

n°762360
TetardKing
Docteur square inside
Posté le 14-06-2004 à 00:44:13  profilanswer
 

C'est pas faux, mais je pense que ca sera pas aussi rapide, d'autre part, sur mon serveur ovh, je n'ai pas perl (quoi que, c'est un serveur dedié ... :ange: :D), donc, je pourrais le mettre, mais bon :/
Donc, des commandes unix de bases, ca serait pas mal en fait.
 
Petite question, je n'ai jamais réussi avec 'sed' à enlever les fin de lignes. Les remplacer, oui, les enlever, non :/
 
Genre un sed 's/\n//g' fichier   ca marche pas.
 
C'est pour mettre tout le ficher en une seule ligne par exemple.
 
Merci pour tout debut de soluce.


Message édité par TetardKing le 14-06-2004 à 00:44:36
n°762364
burgergold
5$? va chez l'diable!
Posté le 14-06-2004 à 00:48:59  profilanswer
 

Taz a écrit :

un coup de perl et on en parle plus :o


 
+1


---------------
http://www.boincstats.com/signature/user_664861.gif
n°762388
ienchangel
test
Posté le 14-06-2004 à 07:28:34  profilanswer
 
n°762389
Taz
bisounours-codeur
Posté le 14-06-2004 à 07:30:22  profilanswer
 

fais le en php avec des regex :o

n°762601
TetardKing
Docteur square inside
Posté le 14-06-2004 à 11:56:05  profilanswer
 

Taz a écrit :

fais le en php avec des regex :o


C'est ce que je fait habituellement sur le fichier de Boinc Astropulse, qui ne fait que 4 Mo. Là, 900 Mo, le serveur va exploser :D
Bon, enfin, si vous le dites... vous n'avez pas l'air d'apprecier l'idée d'un prétraitement en C :jap:
 
Je vais rester avec mes commandes unix ;)


Message édité par TetardKing le 14-06-2004 à 11:56:24

---------------
Da Breizh WoRlD DoMIna7iOn T3aM * Baptiste Mary blog
n°762606
Taz
bisounours-codeur
Posté le 14-06-2004 à 12:02:11  profilanswer
 

biensur que non.
 
et y a pas de prétraitement en C

mood
Publicité
Posté le 14-06-2004 à 12:02:11  profilanswer
 

n°765296
serimal
Posté le 16-06-2004 à 09:36:11  profilanswer
 

Bonjour
je te propose cette piste :  
avec awk on peut redefinir le separateur de champ et de ligne
ex classique : \n pour séparer les champs et \n\n (ligne vide) pour la fin d'enregistrement
 
si ton fichier a cette structure (ligne vide pour separer chaque enregistrement, tu peux ecrire ce genre de truc :
nawk  'BEGIN{FS='\x0a';RS='\x0a\x0a'} $7 !~ />[0\.]+</ {print ;}' fichier
(Avec ma version de awk j'ai du remplacer \n par \x0a)
qui t'affiche chaque enregistrement ou le champ 7 ne contient pas qque chose d'un montant constitué de 0 et de .
 
Salut

n°765470
arsunik
ma tuxitude me beastifie
Posté le 16-06-2004 à 11:23:07  profilanswer
 

lol, quel bourrin :)
En plus tu dois avoir des lib pour parser du xml proprement.
Je regarde une solution en awk

n°765482
arsunik
ma tuxitude me beastifie
Posté le 16-06-2004 à 11:28:18  profilanswer
 

awk '
BEGIN { credit=1; user=""; }
{ user = user $0 "\n"; }
/<\/user>/ { if (credit!=0) { printf ("%s", user); } credit=1; user=""; }
/<total_credit>0.00/ { credit=0; }
'

n°768311
TetardKing
Docteur square inside
Posté le 18-06-2004 à 09:33:21  profilanswer
 

ArSuniK a écrit :

awk '
BEGIN { credit=1; user=""; }
{ user = user $0 "\n"; }
/<\/user>/ { if (credit!=0) { printf ("%s", user); } credit=1; user=""; }
/<total_credit>0.00/ { credit=0; }
'


Merci à tous, je vais regarder ca cet aprem'. J'ai réécrit mon script en perl, ca va nettement plus vite qu'en php, mais ca met encore 10 bonne minutes pour les 900 mo. Merci :jap:


---------------
Da Breizh WoRlD DoMIna7iOn T3aM * Baptiste Mary blog

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [awk/sed] Traitement du fichier de stats boinc...

 

Sujets relatifs
[Servlet]Ouverture d'un fichier non HTMLUtiliser un __gnu_cxx::stdio_filebuf pour lire un fichier
ecriture dans un fichieronversion d'un fichier ;wav en fichier .c
écriture fichier txt/inirecher chaine dans fichier texte
probleme : taille de fichier limitée à 2Mo en upload (ovh)...Impression d'un fichier par une application J2EE
date fichierplace fichier XML et autres
Plus de sujets relatifs à : [awk/sed] Traitement du fichier de stats boinc...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR