Sed - extraire caractères d'une ligne
nth2008
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je débute et cherche à effectuer un script pour extraire des pages de résultats google (les pages .html de type : "https://www.google.fr/search?hl=fr&q=voiture&gws_rd=ssl") 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 :
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
Je débute et cherche à effectuer un script pour extraire des pages de résultats google (les pages .html de type : "https://www.google.fr/search?hl=fr&q=voiture&gws_rd=ssl") 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
A voir également:
- Sed - extraire caractères d'une ligne
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Partager photos en ligne - Guide
- Caractères ascii - Guide
- Caractères spéciaux - Guide
3 réponses
Salut,
Une méthode plus simple :
;-))
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).
;-))
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;-))
hello
une variante
$ w3m -dump "https://www.google.fr/search?hl=fr&q=voiture&gws_rd=ssl" -cols 256| grep "sur un total"
Résultats 1 - 10 sur un total d'environ 48 400 000 pour voiture (0,13 secondes)
une variante
$ w3m -dump "https://www.google.fr/search?hl=fr&q=voiture&gws_rd=ssl" -cols 256| grep "sur un total"
Résultats 1 - 10 sur un total d'environ 48 400 000 pour voiture (0,13 secondes)