Cherche aide pour la fonction awk sous linux

Résolu/Fermé
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.
Configuration: Linux
Firefox 2.0.0.11

31 réponses

  1. Modérateur
    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 ?
    1. 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
      1. Modérateur
        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 !
    2. Modérateur
      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
      ;-))
      1. 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?
        1. Modérateur
          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 ;-))
          1. 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
            1. Modérateur
              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...
              1. /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
                1. 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:~$
                  1. pardon si je n'explique pas bien car je viens de connaître ubuntu depuis une semaine
                    1. Modérateur
                      Le fichier "22001.html" c'est le fichier récupérer via "wget" ?

                      Affiche le résultat de la commande :
                      file 22001.html 
                      1. 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
                        1. dali@k-mna-091:~$ file 22001.html
                          22001.html: ISO-8859 HTML document text, with very long lines
                          1. Modérateur
                            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
                            $
                            1. 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$
                          2. 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
                            1. Modérateur
                              Bon essaye avec cette commande :
                              sed -n '/M\.\|Mme/{N;s#<[^>]*>##g;s/[ ]\{2,\}//g;s/\n/ : /p}' 22001.html 
                              Ça devrait aller mieux ;-))
                              1. oui effectivement les nombres sont affichés sur la ligne
                                merci
                            • 1
                            • 2