|
|
|
|
Posté par
abdali, le mercredi 13 février 2008 à 17:35:00Configuration: Linux Firefox 2.0.0.11
Salut,
Oui c'est possible, voir Sed - Supprimer une ou plusieurs lignes d'un fichier ;-)) Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé. |
merci.
tu es mon sauveur. |
bonjour,
encore une fois je voudrais savoir comment faire pour afficher tout les resultats numeriques de ce fichier que tu connais http://cjoint.com/?ctnfHHB4Oz mis à part les pourcentages merci |
Euh... quelques précisions s'imposent là ;-\
Quels résultats exactement ? L'affichage doit être comment ? Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé. |
j'ai ouvert un "topic comment selectionner avec la fonction sed" j'ai tout expliquer mais je te réexplique ici: |
je voudrais savoir comment faire pour récuperer les données du fichier présent avec la fonction sed:
Accueil > Elections > Les résultats > BRETAGNE > Département 22 Les élections RESULTATS DE L'ELECTION PRESIDENTIELLE DIMANCHE 6 MAI 2007 COTES D'ARMOR (22) -- Allineuc (résultats officiels) Résultats par commune : Cliquez sur la lettre correspondant à l'initiale A B C D E F G H I J K L M N P Q R S T U V Y Nombre % Inscrits Inscrits 408 100,00 Abstentions 36 8,82 Votants 372 91,18 Nombre % Votants Blancs ou nuls 10 2,69 Exprimés 362 97,31 Voix % Exprimés M. Nicolas SARKOZY 185 51,10 Mme Ségolène ROYAL 177 48,90 RAPPEL DES RESULTATS 1er tour DIMANCHE 22 AVRIL 2007 Nombre % Inscrits Inscrits 408 100,00 Abstentions 43 10,54 Votants 365 89,46 Nombre % Votantsbesoin d'aide pour Blancs ou Nuls 2 0,55 Exprimés 363 99,45 Voix % Exprimés M. Olivier BESANCENOT 7 1,93 Mme Marie-George BUFFET 1 0,28 M. Gérard SCHIVARDI 2 0,55 M. François BAYROU 53 14,60 M. José BOVÉ 6 1,65 Mme Dominique VOYNET 2 0,55 M. Philippe de VILLIERS 13 3,58 Mme Ségolène ROYAL 110 30,30 M. Frédéric NIHOUS 9 2,48 M. Jean-Marie LE PEN 28 7,71 Mme Arlette LAGUILLER 5 1,38 M. Nicolas SARKOZY 127 34,99 je voudrais avoir que les nombres et non pas les pourcentages classés dans cet ordre et sans les noms avant c'est a dire de cette maniere: 408 36 372 10 362 185 177 . . . .127 si quelqu'un peut m'aider je suis nul en programmation.voici joint le fichier :http://cjoint.com/?cmnoBpJozR merci |
Oui je l'avais vu entre temps, du coup je le supprime et réponds ici... sed -n '/Inscrits/,/résultat/{\§tdcd">[ ][ ]*[0-9][0-9]*§{N;s/<[^>]*>//g;s/\x20//g;P}}';-))
Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé. |
oui d'accord je vais le tester et je te reponds |
voila ce que ça me donne:
dali@k-mna-091:~$ sed -n '/Inscrits/,/résultat/{\§tdcd">[ ][ ]*[0-9][0-9]*§{N;s/<[^>]*>//g;s/\x20//g;P}}' 22001.html sed: -e expression n°1, caractère 52: commande inconnue: `�' dali@k-mna-091:~$ sed -n '/Inscrits/,/résultat/{\§tdcd">[ ][ ]*[0-9][0-9]*§{N;s/<[^>]*>//g;s/\x20//g;P}}' 22001.html > fichier sortie sed: -e expression n°1, caractère 52: commande inconnue: `�' dali@k-mna-091:~$ |
Change le caractère "§" par "#", sinon chez moi avec l'un ou l'autre ça marche bien : $ sed -n '/Inscrits/,/résultat/{\#tdcd">[ ][ ]*[0-9][0-9]*#{N;s/<[^>]*>//g;s/\x20//g;P}}' cmnoBpJozR_22001.html
408
36
372
10
362
185
177
408
43
365
2
363
7
1
2
53
6
2
13
110
9
28
5
127;-))
Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé. |
merci beaucoup
ça marche nikel |
De rien ;-))
Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé.
|
Les explications de la syntaxe : -n
Affichage que sur demande
/Inscrits/,/résultat/
Adressage des lignes où sera confiner le traitement
{
Regroupement des commandes qui seront appliquées à la plage d'adresse
\#tdcd">[ ][ ]*[0-9][0-9]*#
Nouvel adressage à l'intérieur du précédent visant un motif particulier
\#
On définit un nouveau délimiteur (#) autre que celui par défaut (/)
vu qu'il est contenu dans la chaîne recherchée.
Donc on le protège (\) pour le définir.
tdcd">[ ][ ]*[0-9][0-9]*
L'expression régulière qui définit le motif recherché, à savoir :
- qui commence par tdcd">
- suivit éventuellement par au moins 1 espace ou plus [ ][ ]*
- suivit éventuellement par au moins 1 chiffre ou plus [0-9][0-9]*
{
Regroupement des commandes qui seront appliquées à la nouvelle plage d'adresse
N;
Quant une ligne satisfaisant le motif est trouvée, on ajoute la ligne suivante dans l'espace de travail
s/<[^>]*>//g;
On efface tout ce qui se trouve entre "<" et ">" (on prend soin de spécifier de s'arrêter au 1er ">" trouvé ([^>]*), sans quoi tout ce qu'il y a entre le 1er "<" rencontrée et le dernier ">" sur la ligne serait effacer du fait de la gourmandise des expressions régulières), d'où la présence du flag "g" pour signifier la globalité de chaque expression
s/\x20//g;
On efface tous les espaces vides. On n'est pas obligé dans ce cas d'employer la valeur ASCII (\x20), on aurait très bien pu l'écrire : s/[ ][ ]*//g
P
On n'affiche que la 1ère partie (délimitée par le caractère fin de ligne "\n") du contenu de l'espace de travail, vu que tu ne veux pas les pourcentages, c'est d'ailleurs le pourquoi de l'emploi de la commande "N".
}
Fin du 2ème groupement de commandes
}
Fin 1er groupement de commandes;-))
Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé.
|
Re-
Ben écoute chez moi je n'ai pas de problème, la commande m'affiche bien tous les candidats et leur scrore (avec un doublon pour les 2 candidats du second tour). J'ai un résultat de la forme : M Durand Paul : 11111 Mme Dupond Lajoie : 2222 etc. etc. Pour ne pas avoir les doublons sur les candidats du second tour : sed -nse '/RAPPEL/,$ {/M\.\|Mme/{N;s#<[^>]*>##g;s/[ ]\{2,\}//g;s/\n/ : /p}}' 5356.html;-))
Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé. |
c'est les resultats des legislatives regarde ce qui s'affiche chez moi
��Mme��Nicole��MORHAN : Front national ��Mme��Annick��GUERIN : Communiste ��Mme��Martine��GRASSINEAU : Extr�me gauche ��M.��No�l��;ANDRE : Extr�me droite ��Mme��Nathalie��CLERMONT : Mouvement pour la France ��M.��Dominique��PINGANNAUD : Chasse P�che Nature Traditions ��Mme��B�atrice�65533;LE MARRE : Socialiste ��Mme��Gis�le�A533;CITHAREL : Les Verts ��Mme��Martine��SELLERET : Divers ��Mme��Yvette��FOLLIARD : UDF-Mouvement D�mocrate ��M.��Lo�c��;BOUVARD : Union pour un Mouvement Populaire et moi je voudrais avoir : front national 25 communistes 2 . . etc. car les pages des resultats ne sont pas toutes les mêmes. merci encore |
|
Ben forcément comme ce n'est pas le même genre de résultat, faut adapter ;-\ sed -nse '/RAPPEL/,$ {/M\.\|Mme/{n;N;s#<[^>]*>##g;s/[ ]\{2,\}//g;s/\n/ : /p}}'Testé sur cette page
;-)) Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé.
|
bonjour,
es ce que c'est possble de separer les resultats de plusieurs pages dans un fichier avec la fonction sed c'est à dire dans un fichier qui contiendrait plusieurs pages que tu m'as donné comme exemple precedemment par exemple ,pourrais je les separer par le nom de la circonscription par exemple pour differencier entre les resultats et ne pas avoir une liste des noms continus. merci encore pour ton aide |
[tmpfs]$ cat script.sed
#n
/ELECTIONS/,/officiels/ {
// d
/strong/ {
N
s/<.*>//
p
}
}
/RAPPEL/,$ {
/M\.\|Mme/ {
n
N
s#<[^>]*>##g
s/[ ]\{2,\}//g
s/\n/ : /p
}
}
[tmpfs]$ sed -f script.sed -s *.html
HAUTE GARONNE
(31) -- 1ère circonscription
Extrême gauche : 2 115
Front national : 1 304
Socialiste : 12 758
Divers : 0
Divers : 401
Extrême gauche : 1 275
UDF-Mouvement Démocrate : 3 869
Les Verts : 2 199
Divers : 27
Extrême gauche : 219
Chasse Pêche Nature Traditions : 120
Divers gauche : 203
Divers : 5
Divers droite : 302
Divers : 102
Divers : 108
Ecologiste : 306
Majorité présidentielle : 15 152
HAUTE GARONNE
(31) -- 2ème circonscription
Union pour un Mouvement Populaire : 25 587
Front national : 2 336
Divers : 0
Mouvement pour la France : 598
Les Verts : 2 793
Divers : 552
Divers : 6
Socialiste : 24 733
Extrême gauche : 1 977
Communiste : 1 941
Extrême gauche : 309
Chasse Pêche Nature Traditions : 576
Majorité présidentielle : 2 795
UDF-Mouvement Démocrate : 5 982
Divers droite : 83
[tmpfs]$;-))
Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé.
|
|
#n
/ELECTIONS/,/officiels/ {
// d
/strong/ {
N
s/<.*>//
p
}
}
/M\.\|Mme/ {
n
N
s#<[^>]*>##g
s/[ ]\{2,\}//g
s/\n/ : /p
}
Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé. |