Rechercher : dans
Par :

Sed - extraire caractères d'une ligne

Dernière réponse le 31 aoû 2009 à 16:58:57 nth2008, le 31 aoû 2009 à 11:24:43 
 Signaler ce message aux modérateurs

Bonjour,

Je débute et cherche à effectuer un script pour extraire des pages de résultats google (les pages .html de type : "http://www.google.fr/search?hl=fr&q=voiture") le nombre de résultats trouvés par google ( "Résultats 1 - 10 sur un total d'environ 3 830 000 pour voiture (0,09 secondes) ).

Pour procéder, je télécharge la page avec wget et ensuite je parcours le fichier html à la recherche du nombre de résultats.
Le nombre de résultats est compris dans la page entre les chaines de caractères "sur un total d'environ <b>" et "</b>".

D'après mes recherches, il faut que j'utilise la fonction SED de linux pour extraire les caractères qui se trouvent entre ces deux expressions :

sed -n '/environ <b>/,/<\/b>/p' mon_fichier_google.html


Le problème c'est que quand j'effectue cette recherche, j'obtiens en retour toute la ligne contenant ces expressions, et non, comme je l'aurais souhaité les caractères se trouvant exactement entre ces expressions.
Il semblerait que SED renvoit des lignes uniquement.

Malgré mes recherches je n'ai pu trouver de cas similaire au mien et je m'en remet donc à votre aide pour solutionner mon problème.

Merci par avance,

Nicolas
Configuration: Linux (Ubuntu 9.04)
Firefox 3.0.13

Meilleures réponses pour « Sed extraire caractères d'une ligne » dans :
Sed - Supprimer une ou plusieurs lignes d'un fichier VoirSupprimer une (ou plusieurs) ligne(s) d'un fichier Syntaxe sed '{[/]||[/]}d' sed '{[/][,][/]d' /.../ = délimiteurs n = le numéro de ligne chaîne = la chaîne contenue dans la...
Sed - Numérotation de lignes VoirNumérotation * Numéroter les lignes (équivalent à "cat -n fichier.txt") sed = fichier.txt L'inconvénient c'est que l'affichage se fait sur 2 lignes. Donc pour palier à ce petit "défaut" sed = fichier.txt | sed 'N;s/\n/\t/' Numéroter les...
Sed - Conversion retours chariots DOS (CRLF) / UNIX (LF) VoirConversion format de fichier DOS UNIX / UNIX DOS Préambule Ce qu'il faut savoir Conversion DOS vers UNIX Conversion UNIX vers DOS Préambule Il existe déjà des utilitaires (dos2unix et unix2dos) qui s'acquittent très bien ce...
Javascript - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractère Une chaîne de caractère est, comme son nom l'indique, une suite de caractères. On la représente par la suite de caractères encadrée par des guillemets simples (') ou doubles ("), sachant que les deux types de...

1

jipicy, le 31 aoû 2009 à 11:51:33

Salut,

Une méthode plus simple :

cat ton_fichier_wget | w3m -T text/html | sed -n '/sur un total d/p'
Bien entendu "w3m" doit être installé (aptitude install w3m).

;-)) $ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

2

jipicy, le 31 aoû 2009 à 12:14:20

Sinon, en ayant "html2text" d'installer :

$ wget  -U "" -qO - "http://www.google.fr/search?hl=fr&q=voiture" | html2text |sed -n '/sur un total d/p'
 Résultats 1 - 10 sur un total d'environ 48 400 000 pour voiture (0,13
;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

3

 dubcek, le 31 aoû 2009 à 16:58:57

Hello
une variante
$ w3m -dump "http://www.google.fr/search?hl=fr&q=voiture" -cols 256| grep "sur un total"
Résultats 1 - 10 sur un total d'environ 48 400 000 pour voiture (0,13 secondes)

Répondre à dubcek