Récupération champ avec awk ou autre commande

Résolu/Fermé
Utilisateur anonyme - 27 juin 2013 à 08:41
 Utilisateur anonyme - 27 juin 2013 à 11:23
Bonjour,

dans le fichier fic suivant:

<script type="text/javascript">window.location.href="http://www.test-pre.fr/Documents/Series_VL/2013-06-26/Histo/test.csv";</script><noscript><meta http-equiv="refresh" content="0;url=http://www.www.test-pre.fr/Documents/Series_VL/2013-06-26/Histo/test.csv" /></noscript>

je voudrais savoir s'il y a des méthodes plus simples avec différents outils, afin de récupérer ce qui est indiqué en gras.

j'ai réussi en créant la variable suivante:
FICJOUR='awk 'BEGIN {FS="[=;]" }{print $3}' fic | sed 's/"//g''

mais peut-être qu'il y a mieux ?

++
Poulpoul
A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
27 juin 2013 à 09:48
Salut,

Une méthode avec "grep" et son option "-P" (regex Perl) :

$ cat plop 
<script type="text/javascript">window.location.href="http://www.test-pre.fr/Documents/Series_VL/2013-06-26/Histo/test.csv";</script><noscript><meta http-equiv="refresh" content="0;url=http://www.www.test-pre.fr/Documents/Series_VL/2013-06-26/Histo/test.csv" /></noscript> 

$ grep -o -P 'url=\K[^"]*(?=")' plop 
http://www.www.test-pre.fr/Documents/Series_VL/2013-06-26/Histo/test.csv

$
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
27 juin 2013 à 10:34
@zipe31 : comment ne pas transformer http:// en URL bleu ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
27 juin 2013 à 10:45
Salut,

En insérant une balise dans l'url. Exemple :
http:/<ital></ital>/www.www.test-pre.fr/Documents/Series_VL/2013-06-26/Histo/test.csv
Nous donne :
http://www.www.test-pre.fr/Documents/Series_VL/2013-06-26/Histo/test.csv
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
27 juin 2013 à 10:55
ahhh, j'ai tout essayé sauf ça ...
0
Utilisateur anonyme
27 juin 2013 à 10:58
Bonjour,

ça ne veut pas fonctionner ici, je suis en ksh, c'est peut être pour çà
Jipicy ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
27 juin 2013 à 11:05
Je doute que le shell y soit pour quelque chose.
Par contre le système (Unix ? GNU/Linux ? BSD ?) peut être et la version de grep sûrement.
Après comme il est précisé dans le man :
       -P, --perl-regexp
Interpréter  le  MOTIF  comme  une  expression  rationnelle  Perl   (PCRE,   voir ci-dessous).  Cette  option  est  expérimentale  et grep -P pourrait signaler des fonctionnalités non implémentées.
;-(
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
Modifié par dubcek le 27/06/2013 à 09:56
hello
$ awk -F 'url=|"[ ]*/' '{print $2}' fic
http://www.www.test-pre.fr/Documents/Series_VL/2013-06-26/Histo/test.csv
0
Utilisateur anonyme
27 juin 2013 à 10:14
Bonjour,

y aurait il la possibilité de détailler la commande au niveau du séparateur 'url=|"[ ]*/' ?
on matche url= et après je ne vois pas trop .....
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
27 juin 2013 à 10:33
le séparateur est soit
url=
soit
"<0 ou plusieurs espaces>/
0
Utilisateur anonyme
27 juin 2013 à 10:49
c'est donc un pipe,
et donc le "<0 ou plusieurs espaces>/ correspond à l'espace que je viens de souligner entre csv" et le / donc, c'est bien çà ?
url=http://www.www.test-pre.fr/Documents/Series_VL/2013-06-26/Histo/test.csv" />
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
27 juin 2013 à 10:54
c'est pas un pipe, c'est un ou : -F 'séparateur1 | séparateur2 | séparateur3'
pour l'espace, oui avec [ ]* il peut ne pas en avoir ou en avoir plusieurs
0
Utilisateur anonyme
27 juin 2013 à 10:58
oui un ou je pensais oups..
c'est bien compris en tout cas
merci
0