Cherche aide pour la fonction awk sous linux

Résolu/Fermé
abdali Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   -  
abdali Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'ai des données à recuperer avec la fonction awk sous linux et je voudrais savoir comment faire pour extraire les données que je veux a partir des pages html que j'ai dans un fichier sur mon bureau.
merci pour celui qui veux m'aider.
A voir également:

31 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
0
abdali Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   8
 
merci
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
De rien ;-))

Mais avoue :

comment faire pour extraire les données que je veux a partir des pages html que j'ai dans un fichier
Lesquelles ?
Elles ressemblent à quoi ?
Elles sont situées où ?
Quel est le délimiteur ?
Combien de champs ?
etc.
awk '/motif/ { print $1, $2, $3 }' fichier
T'es plus avancé avec ça ?
0
abdali
 
tout d'abord merci pour ta reponse,
je dois te dire que je suis un novice et que je suis un peu dérouté car je ne suis pas un informaticien donc je ne m'y connais pas trop.
pour le problème que j'ai voila:
j'ai des données des présidentielles 2007 en France que j'ai récupéré du site du ministère de l'intérieur sous format html avec la fonction wget et maintenant je voudrais savoir comment utiliser la fonction awk pour prendre que les données des candidats avec leur score au deuxième tour.il faudrait que je prenne les noms des candidats avec leur score, et ce travail est valable pour tout les départements de France.
voila si vous pouvez me donner un coup de main ça serait bien.
merci
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Tu le fais exprès ou quoi ?

Relis mon post précédent !!!
Sans avoir une idée (vue) précise de ce que tu cherches et veux récupérer, on ne peut rien pour toi !

Copie/colle un bout de ton fichier (ici ou sur cjoint), et dis-nous (en montrant un exemple) ce que tu veux en sortie... c'est clair ?

Merci !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
abdali Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   8
 
voici le lien
https://www.cjoint.com/?cmnoBpJozR
je voudrais avoir juste les données des candidats c'est à dire le nom des candidats et les voix
merci encore
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
C'est pas du "awk" c'est du "sed" (je suis plus à l'aise avec ;-)) ) :
sed -n '/M\.\|Mme/{N;s#<[^>]*>##g;s/[ ]\{2,\}//g;s/\r\n/ : /p}' 053.html
;-))
0
abdali Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   8
 
comment je fais pour afficher les resultats?
quand j'utilise la commande que tu m'as donné j'ai une autre ligne qui s'affiche sans que rien ne se passe.
je comprend pas. j'ai mi un fichier test pour tester sur une seule page que j'ai nommé 22001.html et qui contient les données puis j'ai utilisé le programme avec a la fin le nom de ce fichier mais sur la console ça revient a la ligne.
peux tu encore m'aider?
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Récupère le fichier que tu m'as mis en lien via "wget", puis sur ce même fichier exécute la commande ci-dessus, il devrait alors te sortir ce résultat ;-))
0
abdali Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   8
 
ya un messsage qui me dit "sed: impossible de lire 053.html :aucun repertoire ou fichier de ce type.
pourtant j'ai mis le fichier 053 avec la page 22001.html
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Affiche le contenu de ton répertoire et la commande que tu tapes, ainsi que le message d'erreur. Fais un copier/coller de tout ça depuis ton terminal...
0
abdali Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   8
 
/home/dali/053/022/22001.html
et voila ce que je tape
dali@k-mna-091:~/0053$ sed -n '/M\.\|Mme/{N;s#<[^>]*>##g;s/[ ]\{2,\}//g;s/\r\n/ : /p}' 053.html
0
abdali Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   8
 
et quan j'essai avec cette commande :

dali@k-mna-091:~$ sed -n '/M\.\|Mme/{N;s#<[^>]*>##g;s/[ ]\{2,\}//g;s/\r\n/ : /p}' 22001.html

voila ce qui s'affiche:

dali@k-mna-091:~$
0
abdali Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   8
 
pardon si je n'explique pas bien car je viens de connaître ubuntu depuis une semaine
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Le fichier "22001.html" c'est le fichier récupérer via "wget" ?

Affiche le résultat de la commande :
file 22001.html 
0
abdali Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   8
 
le répertoire 053 que j'ai, comporte quatre sous répertoires qui contiennent les pages html des données aspirées du site web ils représentent en fait les résultats des 4 départements de Bretagne
0
abdali Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   8
 
oui c'est le fichier récuperer via wget
0
abdali Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   8
 
dali@k-mna-091:~$ file 22001.html
22001.html: ISO-8859 HTML document text, with very long lines
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Dis-moi si cette commande t'affiche la liste des candidats et leur score en dessous :
sed -n '/M\.\|Mme/{N;s#<[^>]*>##gp}' 22001.html
Si oui, dis-moi si à la suite de cette commande :
sed -n '/M\.\|Mme/{N;s#<[^>]*>##gp}' 22001.html | cat -A 
si les lignes finissent par :
^M$
ou
$
0
abdali Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   8
 
elles se terminent par $
voila le resultat

dali@k-mna-091:~$ sed -n '/M\.\|Mme/{N;s#<[^>]*>##gp}' 22001.html | cat -A
M- M- M.M- M- NicolasM- M- SARKOZY$
185$
M- M- MmeM- M- SM-igolM-hneM- M- ROYAL$
177$
M- M- M.M- M- OlivierM- M- BESANCENOT$
7$
M- M- MmeM- M- Marie-GeorgeM- M- BUFFET$
1$
M- M- M.M- M- GM-irardM- M- SCHIVARDI$
2$
M- M- M.M- M- FranM-goisM- M- BAYROU$
53$
M- M- M.M- M- JosM-iM- M- BOVM-I$
6$
M- M- MmeM- M- DominiqueM- M- VOYNET$
2$
M- M- M.M- M- PhilippeM- M- de VILLIERS$
13$
M- M- MmeM- M- SM-igolM-hneM- M- ROYAL$
110$
M- M- M.M- M- FrM-idM-iricM- M- NIHOUS$
9$
M- M- M.M- M- Jean-MarieM- M- LE PEN$
28$
M- M- MmeM- M- ArletteM- M- LAGUILLER$
5$
M- M- M.M- M- NicolasM- M- SARKOZY$
127$
0
abdali Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   8
 
Est ce que c'est possible d'avoir que les noms exemple ( ROYAL , BOV, SARKOZY,....) et puis sur la même ligne le score. je dois faire ça pour tout les communes de France. et merci encore
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Bon essaye avec cette commande :
sed -n '/M\.\|Mme/{N;s#<[^>]*>##g;s/[ ]\{2,\}//g;s/\n/ : /p}' 22001.html 
Ça devrait aller mieux ;-))
0
abdali Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   8
 
oui effectivement les nombres sont affichés sur la ligne
merci
0